-
-
//判断 0 和 '' 以及 empty null false的关系 start//
if('safdasefasefasf'==0){
- echo "该字符串转换为数字 等于 0
";
- }//output:该字符串转换为数字 等于零。
这是关键的一个例子
手册上有解释:该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。
也就是说 '3asfdf'==3 ; 'adsfasdf'==0 相当要注意
$a=0;
- if($a==''){
- echo "0 等于 ''
";
- } //output:0 等于''
- if(trim($a)==''){
- echo "trim(0)等于''
";
- } //no output
if($a===''){
- echo "0===''
";
- } //no output
- if(empty($a)){
- echo "'' is empty
";
- } //output:'' is empty
- if(is_null($a)){
- echo "0 is null
";
- } //no output
- if(is_numeric($a)){
- echo "0 is numeric
";
- } //output:0 is numeric
- if(is_string($a)){
- echo "0 is string
";
- } //no output
- if(strval($a)==''){
- echo "转换成字符串的0 is ''
";
- } //no output
- // 判断 0 和 '' 以及 empty null false的关系 end //
// 判断 '' 和 0 以及 empty null false的关系 start //
$b = '';
- if($b==0){
- echo "'' 等于 0
";
- } //output:'' 等于 0
- if(!''){
- echo "'' 就是false
";
- } //output:'' 就是false
- if(!0){
- echo "0 就是false
";
- } //output:0 就是false bbs.it-home.org
- // 判断 '' 和 0 以及 empty null false的关系 end //
echo "在判断空('')的时候一定要小心,0 也相当于'' ,0 和 '' 都相当于空字符和false,判断为空最好用===";
- ?>
-
复制代码
输出结果:
0 等于 ” ” is empty 0 is numeric ” 等于 0 ” 就是false 0 就是false 在判断空(”)的时候一定要小心,0 也相当于” ,0 和 ” 都相当于空字符和false,判断为空最好用=== 只能这样解释:0 也相当于 ” ,0 和 ” 都相当于空字符和false。
在判断空(”)的时候一定要小心,0 也相当于 ” ,0 和 ” 都相当于空字符和false,判断为空最好用===;
echo 0 == null; echo '** ' ; //true
echo 0 === null; echo '** ' ; //false
echo (string)0 != null; echo '** ' ; //true
echo 0 != null; echo '** ' ; //false
echo 0 !== null; echo '** ' ; //true |