在PHP中评估三元运算符

在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);
}