我或多或少都知道三元运算符。 但是我无法读到这一行。
$length = null === $length ? strlen($data) : (int)$length ;
$ length = null === $ length是什么意思?
非常感谢, MEM
答案 0 :(得分:10)
相当于
if (null === $length)
$length = strlen($data);
else
$length = (int)$length;
答案 1 :(得分:8)
这意味着:
如果$length
的值为null
,请将strlen($data)
分配给$length
,否则(int)$length
。
更容易理解括号是否放在正确的位置:
$length = (null === $length) ? strlen($data) : (int)$length ;
答案 2 :(得分:0)
这与
基本相同if ($length === null)
{
$length = strlen($data)
}
else
{
$length = (int)$length;
}
答案 3 :(得分:0)
这意味着
if (null === $length) {
$length = strlen($data);
} else {
$length = (int)$length ;
}
答案 4 :(得分:0)
$length = (null === $length ? strlen($data) : (int)$length ) ;
if (null === $length) {
$length = strlen($data);
} else {
$length = (int)$length;
}
===表示$ length必须为null。请参阅PHP Comparison Operators。
答案 5 :(得分:0)
与$ length =(null === $ length?strlen($ data):( int)$ length);
相同答案 6 :(得分:0)
添加几个括号应该清楚说明:
$length = (null === $length ? strlen($data) : (int)$length);
使用null === $length
代替$length === null
只是编码风格,主要用于反对那些不会警告你if (foo = null) {
而不是{{1}的愚蠢编译器}}
答案 7 :(得分:0)
a === b表示a与b相同,且它们属于同一类型。
所以如果$ length === null则$ length = strlen($ data)else $ length