这是什么意思? $ length = null === $ length? strlen($ data):( int)$ length;

时间:2010-07-27 16:37:40

标签: php

我或多或少都知道三元运算符。 但是我无法读到这一行。

$length = null === $length ? strlen($data) : (int)$length ;

$ length = null === $ length是什么意思?

非常感谢, MEM

8 个答案:

答案 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