给定一个返回数组的函数;
function return_me_an_array() {
return array('my_value');
}
我如何调用它并以优雅的方式从数组中获取单个值(无论是第一个、最后一个还是唯一的值)(是的,我知道这是 PHP!)
如果我这样做
$var = reset(return_me_an_array());
我收到以下 PHP 严格错误:
Strict warning: Only variables should be passed by reference
同样,它们中的每一个都给出相同的警告。
$var = array_shift(return_me_an_array());
$var = array_pop(return_me_an_array());
我知道我可以做到:
$temp = return_me_an_array();
$var = $reset($temp);
但是不得不在两个语句上执行它是非常可怕的。
有什么好的方法吗?
从表面上看,这类似于 How to return an array and get the first element of it in one line in PHP?但是接受的答案使用 reset
- 所以我认为这是不同的;我要么在寻找不给出严格警告的解决方案,要么被告知我想要的是不可能的。
我也知道 PHP 5.4 引入了数组取消引用(例如 return_me_an_array()[0]
),但可惜我目前使用的是 5.3。
关闭后编辑:这怎么太本地化了?这是一个关于如何编写优雅的 PHP 的一般性问题。或者是因为很少有人关心优雅的 PHP,这是“一个非常狭窄的情况,并不普遍适用于互联网的全局受众”?
最佳答案
使用这个:
$var = current(return_me_an_array());
关于php - 在 PHP 5.3 中,如何在没有严格警告的情况下在一行中获取单个元素数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084238/