微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP中的反向分配从LEFT到RIGHT

如何解决PHP中的反向分配从LEFT到RIGHT

| 我有以下情况:
if (isset($x)){
   $y_class = \'new value\';
}else { 
   $z_class = \'new value\';
}
我可以将上述
if
条件转换为三元吗?我的意思是,有没有办法将LEFT分配给RIGHT? 虚构代码
\'new value\' = (isset($x)) ? $y_class : $z_class;
    

解决方法

你可以这样做:
${(isset($x)?$y_class:$z_class)} = \'new value\';
强制链接到有关变量变量的php文档。     ,好吧,如果
$y_class
$z_class
是硬编码的,则可以执行以下操作,但这只会使代码的可读性降低:
$var = isset($x) ? \"y_class\" : \"z_class\";
$$var = \'new value\';
当然,这仍然是从右到左的分配。据我所知,该语言中没有这样的语法允许从左到右分配。     ,这是我可以创建的最干净的实现。 (基本上是前2个答案的组合)。
${(isset($x) ? \'y\':\'z\'). \'_class\'} = \'new value\';
我最初以为使用
list()
语言构造,它虽然不算小,但是无论如何我还是实现了它。
list($y_class,$z_class) = isset($x) ? [\'new value\',$z_class] : [ $y_class,\'new value\'];
如果可能未设置$ y_class或$ z_class,则必须这样做
list($y_class,isset($z_class) ? $z_class : null] : [ isset($y_class) ? $y_class : null,\'new value\'];
两个列表示例都将导致两个变量都被赋值。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。