在各种PHP教程中,我看到了这种语法 -
if ($_POST) {
do something
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否等同于isset或!(空)(任一个)或具有不同的属性.
它试图评估表达式并将其转换为布尔值.
参见"转换为布尔值"在http://php.net/manual/en/language.types.boolean.php,看看哪个值将等同于true,哪些false.
但它不检查数组键是否存在(即isset),因此如果您尝试if ($_GET['somekey'])但somekey不存在,您将看到PHP Notice: Undefined index: somekey然后false将被假设.
最佳做法是首先手动执行empty()或isset()检查.
好问题。如果您问我,您正在解决 PHP 的阴暗面之一。
if 语句 就像在任何其他语言中一样,我可以想象 if 将参数评估为 true 或 false。
由于 PHP 并不真正了解类型,因此您可以将任何表达式作为参数,然后将其整体转换为 bool
以下值被视为“FALSE”
所有其他值或表达式结果都将转换为 bool TRUE
现在,知道了这一点,我们需要找出的是,表达式或函数执行时返回什么
如果未设置 POST 数据,则以下表达式将为 TRUE
$_POST == FALSE
Run Code Online (Sandbox Code Playgroud)
资产函数
当给定变量已设置且不为 null 时,isset 返回 bool TRUE。
参数可以是变量、数组元素、字符串偏移量和对象的数据成员。
在 PHP 5.4 中,他们修复了字符串偏移量的行为
$var = FALSE;
isset( $var ) === TRUE;
$var === FALSE;
Run Code Online (Sandbox Code Playgroud)
更多信息请参见 https://www.php.net/manual/en/function.isset.php
空函数
当变量被认为是空或不存在时返回 false。
这些值被视为空:
如果 var 存在并且具有非空、非零值,则返回 FALSE。否则返回 TRUE。
以下值被视为空:
比较表
$var = FALSE;
isset($var) === TRUE;
empty($var) === TRUE;
$var === FALSE;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
233 次 |
| 最近记录: |