PHP自定义函数变量作用域用法解析
- 2022年10月7日
- 885 次
我们在PHP中定义一个自定义函数的时候,我们会在函数名后的()内带上一定的变量参数,这些变量参数实际上只能在这个自定义函数体内运行,如果函数体外有相同的变量名的时候,这两个变量实际上是不一样的,这就是PHP自定义函数的变量作用域,一般情况下我们是无法使用自定义函数体外的变量,但是我们可以通过PHP超全局变量将自定义函数外的变量拿到自定义函数体内使用。
PHP自定义函数变量是否能在函数外调用
文章开篇已经说了在PHP中自定义函数中的变量在函数体外是无法调用的,下面通过一个实例来测试一下:
<?php
function aa($a=12,$b=16){
$result = $a*$b;
return $result;
}
echo '函数aa的输出结果为:'.aa().'<br>';
if (empty($a)){//检查$a变量是否为空,
echo '$a的值变量为空';//如果$a变量为空输出本句。
}else{
echo '$a的值为:'.$a;//如果$a变量不为空则输出本句并输出变量$a的值。
}
?>
测试页面显示结果:
在上面实例中,我在输出了自定义函数aa后,我用if…else和empty()函数对$a变量做了一个是否为空的判断,结果验证了上述说法,最终显示结果为$a变量是否为空。
PHP自定义函数能否直接使用函数体外变量?
PHP自定义函数是不能直接使用自定义函数体外变量的,下面通过实例代码来验证:
<?php
$outside = 13+15;
function aa($a=12,$b=16){
$result = $a*$b*$outside;
return $result;
}
echo '函数aa的输出结果为:'.aa().'<br>';
?>
执行文件后显示结果:
执行后显示的结果是0,在我使用的VSCode编辑器中直接将$outside下面显示了红色波浪线报错显示。
放在$outside变量上显示出“Undefined variable '$outside' ”意思就是未定义$变量,所以最终导致最后的运算结果为0,这就充分说明我们不能直接使用自定义函数体外的变量。
PHP自定义函数正确使用函数体外变量
在本文开篇也提到了PHP自定义函数如果需要使用函数体外变量,则需要使用超全局变量将函数体外的变量拿到函数中,这样才能正确的将函数体外的变量拿到函数体内使用。
下面是一个使用超全局变量global的一个实例:
<?php
echo '<style>*{margin:30px;}</style>';
$c = 13;
$d = 15;
$outside = 13+15;
function aa($a=12,$b=16){
global $c,$d; //使用global全局变量引入外部的变量$c和$d;
$outside = $c+$d;
$result = $a*$b*$outside;
return $result;
}
echo '函数aa的输出结果为:'.aa().'<br>';
if (empty($a)){//检查$a变量是否为空,
echo '$a的值变量为空';//如果$a变量为空输出本句。
}else{
echo '$a的值为:'.$a;//如果$a变量不为空则输出本句并输出变量$a的值。
}
?>
访问文件显示结果截图:
经过检查运算结果,确实正确的将自定义函数aa体外变量$c和$d拿到函数体内并正常的进行运算。
今天主要通过几个实例加深了对PHP自定义函数变量作用域知识的理解,进一步加深了对PHP自定义函数变量是否能在函数外调用、PHP自定义函数能否直接使用函数体外变量及PHP自定义函数正确使用函数体外变量的方法的理解和运用。
若非作者标注皆为李涛自留地原创文章,转载或复制请以超链接形式并注明出处。
- 上一篇: PHP自定义函数之内部函数写法、调用及注意要点
- 下一篇: ICP备案需要钱么?ICP备案怎么查询?
- 如何使用PHP函数制作一张简单的图片 使用PHP函数制作图片需要哪些函数 2022-11-21
- PHP array_slice() 和 array_splice() 详解:数组切片与截取 2026-07-02
- PHP常用字符串函数删除字符串空白符函数用法及实例 2022-10-18
- PHP中getimagesize()函数使用方法 getimagesize()函数有哪些内置参数? 2022-11-23
- PHP中如何重命名、复制、删除文件?PHP重命名、复制、删除文件操作实例 2022-11-11
- PHP array_map() 函数详解:对数组元素统一处理 2026-07-02
