如果用错方法函数或是用少了,如果几个方法函数的逻辑顺序错了,很可能就是一个漏洞,而且不容易找出来。纠结啊~上网找找看哪位高人有总结出相关的结论出来,果然有!不过似乎不是很全面,我在这里稍完善了一下,仅供参考。
复制代码代码如下:// 判断 0 与 ''、null、empty、false 之间的关系$a = 0;echo "0 与 ''、 empty、null、false 之间的关系:";if($a == ''){echo "0 == '';";}else{echo "0 != '';";}if(trim($a) == ''){echo "trim(0) == '';";}else{echo "trim(0) != '';";}if(strval($a) == ''){echo "strval(0) == '';";}else{echo "strval(0) != '';";}if($a === ''){echo "0 === '';";}else{echo "0 !=== '';";}if(empty($a)){echo "0 is empty;";}else{echo "0 is not empty;";}if(is_null($a)){echo "0 is null;";}else{echo "0 is not null;";}if(is_numeric($a)){echo "0 is numeric;";}else{echo "0 is not numeric;";}if(is_string($a)){echo "0 is string;";}else{echo "0 is not string;";}if(!$a){echo "0 is false;";}else{echo "0 is not false;";}// 判断 '' 和 0、null、empty、false 之间的关系$a = '';echo "'' 和 0、empty、null、false 之间的关系:";if($a == 0){echo "'' == 0;";}else{echo "'' != 0;";}if(intval($a) == 0){echo "intval('') == 0;";}else{echo "intval('') != 0;";}if(empty($a)){echo "'' is empty;";}else{echo "'' is not empty;";}if(is_null($a)){echo "'' is null;";}else{echo "'' is not null;";}if(is_numeric($a)){echo "'' is numeric;";}else{echo "'' is not numeric;";}if(is_string($a)){echo "'' is string;";}else{echo "'' is not string;";}if(!$a){echo "'' is false;";}else{echo "'' is not false;";}// 判断 null 和 ''、0、empty、false 之间的关系$a = null;echo "null 和 ''、0、empty、false 之间的关系:";if($a == ''){echo "null == '';";}else{echo "null != '';";}if($a == 0){echo "null == 0;";}else{echo "null != 0;";}if($a === ''){echo "null === '';";}else{echo "null !=== '';";}if($a === 0){echo "null === 0;";}else{echo "null !=== 0;";}if(strval($a) == ''){echo "strval(null) == '';";}else{echo "strval(null) != '';";}if(intval($a) == 0){echo "intval(null) == 0;";}else{echo "intval(null) != 0;";}if(empty($a)){echo "null is empty;";}else{echo "null is not empty;";}if(is_numeric($a)){echo "null is numeric;";}else{echo "null is not numeric;";}if(is_string($a)){echo "null is string;";}else{echo "null is not string;";}if(!$a){echo "null is false;";}else{echo "null is not false;";}echo "";
输出的结果是:
我想根据输出结果都可以清楚了解决空字符串、0、null、empty和false之间的大概关系,在开发过程中灵活运用上述代码里的方法,加上良好的逻辑,基本上应该是不会出现问题的了。
点击下载相关源代码PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载http://www.bkjia.com/PHPjc/325931.html www.bkjia.com true http://www.bkjia.com/PHPjc/325931.html TechArticle如果用错方法函数或是用少了,如果几个方法函数的逻辑顺序错了,很可能就是一个漏洞,而且不容易找出来。纠结啊~ 上网找找看哪位高...
