[英]Multiple procedure assignment for self variable in one line
有没有什么方法可以在一行中从多个过程中分配一个变量?
例如:
$class_splits = explode("\\", $class_name);
$short_class_name = $class_splits[count($class_splits) - 1] ?? null;
翻译成这个伪代码:
$short_class_name = explode("\\", $class_name) => prev_result(count(prev_result) -1);
我对此没有太大的期望,因为我知道它看起来太“高级”但不确定 PHP 的新版本是否可以处理这个问题。
谢谢。
您可以将赋值用作表达式,然后引用稍后在包含表达式中赋值的变量。
$short_class_name = ($class_splits = explode("\\", $class_name))[count($class_splits) - 1] ?? null;
也就是说,我不建议这样编码。 如果目标是避免创建另一个变量,那么它不会成功。 它只会让整个事情变得更加复杂和混乱。
我相信你有一个“X/Y 问题”:你的实际要求似乎是“如何拆分一个字符串并只返回最后一个元素”,但你一直在思考一个特定的解决方案。
因此,我们可以查看“ 如何在不删除数组的最后一个元素的情况下获取数组的最后一个元素? ”的答案,使其成为单行语句,我们需要 a) 不需要引用参数的东西,以及 b ) 不需要数组被提及两次。
一个好的候选者看起来像array_slice ,它可以返回一个只有最后一个元素的单元素数组,然后我们可以从中提取带有[0]
的字符串:
$short_class_name = array_slice(explode("\\", $class_name), -1)[0];
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.