我使用的是一个模板引擎,它可以在我想要的地方插入代码。
我写了一个函数来测试一些非常简单的东西:
myfunction() { return '($this->data["a"]["b"] ? true : false)'; }
问题是,$this->数据是私有的,我不能在任何地方访问它,所以我必须使用getData();,这导致了我的问题。
$this->getData()['a']['b']
不起作用,首先赋值也不起作用,因为它将直接在if()块中使用。
有什么想法吗?
发布于 2012-05-07 20:29:26
从PHP 5.4开始,就有可能做到这一点:
getSomeArray()[2]
参考:https://secure.php.net/manual/en/language.types.array.php#example-62
在PHP5.3或更早的版本中,您需要使用临时变量。
发布于 2009-09-22 11:44:17
好的..。显然,真的没有更好的方法,所以我将用一个不太好的解决方案来回答自己:
我创建了这个函数:
arrayGet($array, $index) { return $array[$index]; }
并像这样使用它:
myfunction() { return '(arrayGet(arrayGet($this, "a"), "b") ? true : false)' }
这并不美观,但很有效。
https://stackoverflow.com/questions/1459377
复制相似问题