此PHP语句的输出

此PHP语句的输出,php,echo,Php,Echo,此PHP语句的输出为: $a = 'a'; $b = 'b'; echo isset($c) ? $a.$b.$c : ($c = 'c').'d'; 它显示“cd”,但这里有一个问题: 为什么($c='c')是'c' 这个语句的执行顺序是什么?这类似于:echo($c='c')。'd'?顺序是:括号,然后是外部。这与: $c = 'c'; $c = $c . 'd'; echo $c; 首先,你使用的是三元运算符?这与如果。。。else声明。 因为变量$c没有设置,所以它执行($c='c

此PHP语句的输出为:

$a = 'a'; $b = 'b';

echo isset($c) ? $a.$b.$c : ($c = 'c').'d';
它显示“cd”,但这里有一个问题:

为什么
($c='c')
'c'


这个语句的执行顺序是什么?这类似于:
echo($c='c')。'd'

顺序是:括号,然后是外部。这与:

$c = 'c';
$c = $c . 'd';
echo $c;

首先,你使用的是三元运算符?这与如果。。。else声明。 因为变量$c没有设置,所以它执行
($c='c')。'd'
然后它将值'c'分配给
$c
变量,并且(因为赋值是在表达式中完成的)
($c='c')
在执行时被解析为'c',并完成赋值


关于为什么($c='c')是'c'的问题。这是php的一个特性。它同时做两件事。首先它将值赋给变量
$c
,然后如果在表达式中使用变量
$c
的值。

首先它将
'c'
赋给
$c
,然后将其与
'd'
连接,最后回显。就这些。

你还希望
($c='c')
是什么?首先是
(…)
,然后是
($c='c')
的结果是$c(现在等于'c'),因为您将
'c'
赋值给
$c
($c='c')
是将值
c
赋值给
$c
,没有第二个赋值给$c。@OliCharlesworth我知道,我的意思是为了更好地理解,把这个表达分解成多个指令。