猿问

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

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

我正在使用一个模板引擎,它在我想要的站点中插入代码。

我编写了一个函数来测试一些非常容易的东西:

myfunction() { return '($this->data["a"]["b"] ? true : false)'; }

问题是,$this->数据是私有的,而且我不能在所有地方访问它,所以我必须使用getData();这导致了我的问题。

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

不起作用,而且先分配值也不起作用,因为它将直接在if()块中使用。

有什么想法吗?


月关宝盒
浏览 941回答 3
3回答

慕容森

您不能使用这样的东西:$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()方法,并将其返回值存储在临时变量中。然后,使用临时变量进行测试。你没有太多的选择,事实上.

慕慕森

好吧.。显然没有更好的方法了,所以我要用一个不那么漂亮的解决方案来回答自己:我创建了这个函数:arrayGet($array, $index) { return $array[$index]; }像这样使用它:myfunction() { return '(arrayGet(arrayGet($this, "a"), "b") ? true : false)' }这不是很漂亮,但很管用。
随时随地看视频慕课网APP
我要回答