<?php
$a = $_GET['a'] ?? 0;
if($a == 'a'){
echo '0等于任何东西?:'.$a;
}
这里面的表达式为什么会成立?0和'a'有什么地方相等?$a = $_GET['a'] ?? 1;或是'0',则表达式不成立!
<?php
$a = $_GET['a'] ?? 0;
if($a == 'a'){
echo '0等于任何东西?:'.$a;
}
这里面的表达式为什么会成立?0和'a'有什么地方相等?$a = $_GET['a'] ?? 1;或是'0',则表达式不成立!
??是php7的新语法
上述代码定价于:
<?php
$a = isset($_GET['a']) ? $_GET['a'] : 0;
if($a == 'a'){
echo '0等于任何东西?:'.$a;
}
当未接收到get请求值a时,$a=0; 所以$a的值应该是get请求的中a参数的值。另外:0 和 'a'什么地方也不相等!
你这个问题少个关键的环节,就是发起get请求时参数a的值是什么。
字符串和数字比较的时候,会把字符串转成数字,如果不能转成数字则是0。
所以,不含有数字的字符串都转成了 0
解决方法:
2 回答961 阅读✓ 已解决
3 回答951 阅读✓ 已解决
3 回答973 阅读
3 回答971 阅读
1 回答513 阅读✓ 已解决
4 回答805 阅读
4 回答968 阅读
运行一下上面的代码你就知道为什么了。
这是字符串转换为数值的问题.
简单来讲,字符串开头是数字的就转成数字,开头没有数字的转成0
文档在这