任何人都可以解释为什么在PHP 5.2.9上这个语句的计算结果为true而不是false?
echo $value = '2010-01-01 12:30:45';
echo "<br>";
echo isset($value['everythingistrue']) ? 'TRUE' : 'FALSE';
Run Code Online (Sandbox Code Playgroud)
sal*_*the 10
您无意中访问了字符串中的单个字符(第一个字符),这确实已设置.
可以通过数字偏移访问单个字符,因此以下方法可以正常工作
$string = "abc";
echo $string[2], $string[1], $string[0]; // cba
Run Code Online (Sandbox Code Playgroud)
在您的情况下,字符串'everythingistrue'不是有效的字符串偏移量,因此使用正常的字符串到整数规则将其转换为数字:因此它变为0. $value[0]设置(它是第一个字符2),因此isset()调用返回true,导致您的三元操作评估为字符串TRUE.
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |