只是好奇为什么这会触发警告。
注意: URL中未包含查询字符串参数test
//Notice: Undefined index: test 
if($_GET['test'] === 'somestring' && !empty($_GET['test'])) {
}
//Valid - No Warning.  Why is this Valid? Param 'test' was never given
if(!empty($_GET['test']) && $_GET['test'] === 'somestring') {
}这是因为PHP的计算是从左到右吗?而不是整个病症?
发布于 2018-06-12 05:07:17
if(!empty($_GET['test']) && $_GET['test'] === 'somestring') {因为您使用的是&&,所以如果任何条件为false,则不会检查进一步的条件。条件是按照编写的顺序进行检查的。因为在这里,第一个条件!empty($_GET['test'])是false,所以下一个条件不求值,因此没有警告。
https://stackoverflow.com/questions/50805984
复制相似问题