php - 在 PHP 5.3 中,如何在没有严格警告的情况下在一行中获取单个元素数组中的值

标签 php arrays

给定一个返回数组的函数;

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());

演示:http://3v4l.org/Ruj5e

手册:http://php.net/manual/en/function.current.php

关于php - 在 PHP 5.3 中,如何在没有严格警告的情况下在一行中获取单个元素数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084238/

相关文章:

php脚本执行python脚本写入一些文件

javascript - 使用 javascript 在嵌套的 JSON 对象中添加或删除特定节点

c++ - 分而治之算法找到数组的最大元素

php - Yii CDbCriteria 将 2 个属性与单个值进行比较

php - 使用工厂方法模式比简单工厂有什么优势?

php - sql数据库中的一些列没有进入php

php - 连接表以获取与另一列的出现次数

c - 尝试访问结构数组时出现段错误

c - Malloc 'ing 结构中的结构数组

java - Java 中的链表数组