在查询数据库时,我发现自己在PHP中创建了冗余变量。
在Javascript,C#和Java中,我可以在方法调用之后直接使用数组索引运算符,而在PHP中,我不能。
以下示例说明了我的观点:
// $result -> SELECT t.id
// FROM table t
// WHERE t.name = 'bla'
// LIMIT 1
$o = mysql_fetch_assoc($result);
$value = $o['valueIndex'];
这将是无效的:
$value = mysql_fetch_assoc($result)['valueIndex'];
为什么上述无效,是否按设计进行了此操作?或者语法会变得太复杂?
小here。
答案 0 :(得分:4)
这将在目前的PHP 5.4中实现。
在您的具体情况下,您现在可以使用以下解决方法:
$value = mysql_fetch_object($result)->valueIndex;
虽然数组derefencing不是计划的PHP功能,但对于函数结果总是可以访问对象。
答案 1 :(得分:0)
不应该这样吗?
$value = (mysql_fetch_assoc($result))['valueIndex'];