PHP 函数详解
PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。
PHP 用户定义函数
除了内建的 PHP 函数,我们可以创建我们自己的函数。
函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。
在 PHP 创建用户定义函数
用户定义的函数声明以关单 \”function\” 开头:
语法
function functionName() {
被执行的代码;
}
注释:函数名能够以字母或下划线开头(而非数字)。
注释:函数名对大小写不敏感。
提示:函数名应该能够反映函数所执行的任务。
在下面的例子中,我们创建名为 \”writeMsg()\” 的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出 \”Hello world!\”。如需调用该函数,只要使用函数名即可:
实例
<?php
function writeMsg() {
echo \”Hello world!\”;
}
writeMsg(); // 调用函数?>
PHP 函数参数
可以通过参数向函数传递信息。参数类似变量。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:
实例
<?php
function familyName($fname) {
echo \”$fname Zhang.<br>\”;
}
familyName(\”Li\”);
familyName(\”Hong\”);
familyName(\”Tao\”);
familyName(\”Xiao Mei\”);
familyName(\”Jian\”);
?>
下面的例子中的函数有两个参数($fname 和 $year):
实例
<?php
function familyName($fname,$year) {
echo \”$fname Zhang. Born in $year <br>\”;
}
familyName(\”Li\”,\”1975\”);
familyName(\”Hong\”,\”1978\”);
familyName(\”Tao\”,\”1983\”);
?>
PHP 默认参数值
下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:
实例
<?php
function setHeight($minheight=50) {
echo \”The height is : $minheight <br>\”;
}
setHeight(350);
setHeight(); // 将使用默认值 50setHeight(135);
setHeight(80);
?>
PHP 函数 – 返回值
如需使函数返回值,请使用 return 语句:
实例
<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
}
echo \”5 + 10 = \” . sum(5,10) . \”<br>\”;
echo \”7 + 13 = \” . sum(7,13) . \”<br>\”;
echo \”2 + 4 = \” . sum(2,4);
?>
array_key_exists 与 isset 的比较
在 PHP 中,array_key_exists 和 isset 都可以用来判断数组中的某个键是否存在,但它们在某些情况下表现不同。以下是它们的主要区别和适用场景:
- 功能:检查变量是否已设置并且不是 null。
- 优点:性能较好,通常比 array_key_exists 更快。可以同时检查多个变量。
- 缺点:如果数组键存在但值为 null,isset 会返回 false。不能用于检查对象属性是否存在(除非属性值不是 null)。
- 功能:检查数组中是否存在指定的键。
- 优点:即使数组键存在且值为 null,也会返回 true。专门用于检查数组键的存在性,语义更明确。
- 缺点:性能略低于 isset。
- 使用 isset:
- 当你需要检查数组键是否存在且其值不是 null 时。
- 当性能是关键因素时。
- 使用 array_key_exists:
- 当你需要严格检查数组键是否存在,即使其值为 null 时。
- 当你希望代码的意图更加明确时。
- 如果你只需要检查数组键是否存在且不关心其值是否为 null,推荐使用 isset,因为它性能更好。
- 如果你需要严格检查数组键是否存在,即使其值为 null,推荐使用 array_key_exists,因为它语义更明确。
根据你的具体需求选择合适的方法。
PHP判断是否为空的5种方法
- isset()功能:判断变量是否被初始化
说明:它并不会判断变量是否为空,可以用来判断数组中元素是否被定义过。
l另外需要注意的是:当使用isset()来判断数组元素是否被初始化过时,它的效率比 array_key_exists() 高4倍左右。
- empty()功能:检测变量是否为”空”
说明:任何一个未初始化的变量、值为 0 或 false 或 空字符串\”\” 或 null的变量、空数组、没有任何属性的对象, empty(变量) == true。
注意1:未初始化的变量也能被empty检测为”空”。
注意2:empty只能检测变量,而不能检测语句。
- var == null功能:判断变量是否为”空”
说明:值为 0 或 false 或 空字符串”” 或 null的变量、空数组、都将判断为 null。
注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。
- is_null功能:检测变量是否为”null”
说明:当变量被赋值为”null”时,检测结果为true。
注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别。
注意2:仅在变量的值为”null”时,检测结果才为true,0、空字符串、false、空数组都检测为false。
注意3:变量未初始化时,程序将会报错。
- var === null功能:检测变量是否为”null”,同时变量的类型也必须是”null”
说明:当变量被赋值为”null”时,同时变量的类型也是”null”时,检测结果为true。
注意1:在判断为”null”上,全等于和is_null的作用相同。
注意2:变量未初始化时,程序将会报错。
总结:
PHP中,”NULL” 和 “空” 是2个概念。
isset 主要用来判断变量是否被初始化过。
empty 可以将值为 “假”、”空”、”0″、”NULL”、”未初始化” 的变量都判断为TRUE。
is_null 仅把值为 “NULL” 的变量判断为TRUE。
var == null 把值为 “假”、”空”、”0″、”NULL” 的变量都判断为TRUE。
var === null 仅把值为 “NULL” 的变量判断为TRUE。
注意:在判断一个变量是否真正为”NULL”时,大多使用 is_null,从而避免”false”、”0″等值的干扰。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。