PHP中的反向分配(LEFT到RIGHT)

diE*_*cho 2 php conditional-operator

我有以下条件:

if (isset($x)){
   $y_class = 'new value';
}else { 
   $z_class = 'new value';
}
Run Code Online (Sandbox Code Playgroud)

我可以将上述if情况改为三元吗?通过这个,我的意思是,有没有办法将LEFT分配 给RIGHT

想象代码:

'new value' = (isset($x)) ? $y_class : $z_class;
Run Code Online (Sandbox Code Playgroud)

Tam*_*más 7

好吧,如果$y_class并且$z_class是硬编码的,你可以做这样的事情,但这只会使你的代码不那么可读:

$var = isset($x) ? "y_class" : "z_class";
$$var = 'new value';
Run Code Online (Sandbox Code Playgroud)

当然,这仍然是从右到左的任务; 据我所知,语言中没有这样的语法允许从左到右分配.

  • 我已经给了这个+1,因为它是你最接近你想要做的事情,但说实话,我只是坚持使用你有的`if/else`代码,因为那个双美元语法很讨厌; 在PHP程序中我不想看到的事物列表中的`eval()`几乎是坏事. (2认同)

Ark*_*rkh 5

你可以这样做: ${(isset($x)?$y_class:$z_class)} = 'new value';

有关变量变量的php文档的强制链接.