<?php declare(strict_types=1); ini_set('display_errors', 'On'); ini_set('error_reporting', E_ALL); $str = '0'; // 错误用法演示 if ($str) { echo '字符串非空' . PHP_EOL; } else { echo '字符串为空' . PHP_EOL; // 字符串为空 } // 正确用法演示 if ($str !== '') { echo '字符串非空' . PHP_EOL; // 字符串非空 } else { echo '字符串为空' . PHP_EOL; } //========== 总结 ==========// // 1、在判断字符串是否为空时,必须使用全等比较运算符(===)或者不全等比较运算符(!==),否则可能会出现非预期结果。 // 当字符串为'0'时,如果缺省比较运算符,程序会先把字符串'0'转成数字0,这就是判断出现非预期结果的原因。 // 2、PHP的比较运算经常会出现隐式转换,例如两个比较对象中有一个是数字字符串或者两个都是数字字符串,会先转成数字再比较。 // 3、在PHP中,除了bool类型可以缺省比较运算符,其它类型都不应该缺省比较运算符,以提高程序的安全性。
Copyright © 2024 码农人生. All Rights Reserved