如何解决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 举报,一经查实,本站将立刻删除。