为了账号安全,请及时绑定邮箱和手机立即绑定

由php中的函数返回的访问数组

由php中的函数返回的访问数组

PHP
月关宝盒 2019-07-11 10:27:03
由php中的函数返回的访问数组我正在使用一个模板引擎,它在我想要的站点中插入代码。我编写了一个函数来测试一些非常容易的东西:myfunction() { return '($this->data["a"]["b"] ? true : false)'; }问题是,$this->数据是私有的,而且我不能在所有地方访问它,所以我必须使用getData();这导致了我的问题。$this->getData()['a']['b']不起作用,而且先分配值也不起作用,因为它将直接在if()块中使用。有什么想法吗?
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

您不能使用这样的东西:

$this->getData()['a']['b']

例如,不能直接在函数调用上使用数组访问语法.

你得用点临时变量,就像这样:

$tmp = $this->getData();$tmp['a']['b']    // use $tmp, now

在您的例子中,这可能意味着使用以下内容:

function myfunction() {
  $tmp = $this->getData();
  return ($tmp['a']['b'] ? true : false);}

你必须:

  • 首先,打电话给你的

    getData()

    方法,并将其返回值存储在临时变量中。
  • 然后,使用临时变量进行测试。

你没有太多的选择,事实上.


查看完整回答
反对 回复 2019-07-11
?
慕慕森

TA贡献1856条经验 获得超17个赞

好吧.。显然没有更好的方法了,所以我要用一个不那么漂亮的解决方案来回答自己:

我创建了这个函数:

arrayGet($array, $index) { return $array[$index]; }

像这样使用它:

myfunction() { return '(arrayGet(arrayGet($this, "a"), "b") ? true : false)' }

这不是很漂亮,但很管用。


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 940 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信