Gam*_*mer 2 php conditional types
这绝对是疯狂的.我今天正在测试一个post变量,它应该总是评估为一个字符.示例代码是......
if($_POST['status'] == '' || $_POST['status'] == 0){ die('oh no!'); }
Run Code Online (Sandbox Code Playgroud)
如果我传递状态P,它正在执行die语句.然后我用以下代码创建了一个PHP文件......
echo 'P1: '.intval($_POST['status']=='').'<br />';
echo 'P2: '.intval($_POST['status']==0).'<br />';
echo 'P3: '.intval('P'==0).'<br />';
Run Code Online (Sandbox Code Playgroud)
你猜怎么着?P2和P3都评估为TRUE.intval只是在P1上显示0而不是什么都没有.
这是PHP的已知错误吗?这只是在我正在运行的版本上被打破的东西吗?坦率地说,我完全不知道为什么会这样做.它使用三等于正确评估,但不是双倍.P在我的书中肯定不等于0 ...
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |