在PHP中评估三元运算符
问题描述:
echo strlen('Hello World') > 2 ? '...' : '' . substr('Hello World',0,2);
above code output:
...
what I except was
...He
Can anyone explain how the above code is evaluated in php
EDIT
echo substr('Hello World',0,2) . strlen('Hello World') > 2 ? '...' : '';
OUTPUT
NO OUTPUT
BUT this works
echo substr('Hello World',0,2), strlen('Hello World') > 2 ? '...' : '';
OUTPUT
He...
echo strlen('Hello World')> 2? '...':''。 substr('Hello World',0,2);
code> pre>
以上代码输出: p>
...
code> pre>
我除了 p>
...他
code> pre> \ n
任何人都可以解释如何在php中评估上述代码 p>
编辑 strong> h1>
echo substr('Hello World',0,2)。 strlen('Hello World')> 2? '...':'';
code> pre>
OUTPUT p>
NO OUTPUT p>
但这有效 p>
echo substr('Hello World',0,2),strlen('Hello World')> 2? '...':'';
code> pre>
OUTPUT p>
他...
code > pre>
div>
答
It's evaluated like this:
echo strlen('Hello World') > 2 ? '...' : ('' . substr('Hello World',0,2));
What you probably want is this:
echo (strlen('Hello World') > 2 ? '...' : '') . substr('Hello World',0,2);
答
The same as if-condition:
if(strlen('Hello World') > 2) {
echo '...';
} else {
echo '' . substr('Hello World',0,2);
}