我最近遇到了一个奇怪的问题。
if($somestring != "" && $somestring > 0){
// do something.
}
我的问题是,这两个检查是一样的吗?在 PHP 中转换为 INT 时字符串是否总是大于 0?或者一个字符串可以评估为 0?
可以有字符串“-1”,它会被直接评估为 -1 int
关于您的情况-首先检查它是否为空-在这种情况下,它将被评估为 0。看起来作者不希望 php 这样做并需要该值
首先,字符串可以是“空的”,因此其中没有任何内容。未设置时为整数,默认设置为 0
所以分解是
if ($somestring != "") // 1 - check to see if the string is not empty
if ($somestring > 0) // 2 - Check to see of the non-empty string has a value greater than 0
所以作者试图防止松散类型的脚本。
希望这可以帮助 :)