我必须这样做:
$sourceElement['description'] = htmlspecialchars_decode($sourceElement['description']);
我想避免多余提及变量名称。我试过了:
htmlspecialchars_decode(&$sourceElement['description']);
和
call_user_func('htmlspecialchars_decode', &$sourceElement['description']);
那不起作用。这可能在PHP?在变量上调用函数?
答案 0 :(得分:7)
您可以创建自己的包装函数,通过引用获取变量:
function html_dec(&$str) {$str = htmlspecialchars_decode($str);}
然后致电:
html_dec($sourceElement['description']);
答案 1 :(得分:3)
正确的解决方案将包括“冗余”变量提及。它更具可读性,而且不那么令人困惑。
$sourceElement['description'] = htmlspecialchars_decode($sourceElement['description']);
你的思维方式很好,你正在考虑如何缩短你的代码,就像一个真正懒惰的程序员=)
答案 2 :(得分:2)
这取决于功能。 htmlspecialchars_decode()
返回结果,它不会修改原始变量。你无能为力。
答案 3 :(得分:2)
PHP中的大多数函数在成熟时都是不可变的,即它们不会修改传递给它们的参数。这有一些优点,其中一个能够在没有副作用的表达式中使用它们的返回值。
这是一个通用的包装器,可用于模拟任何带有单个参数的函数的可变行为:
function applyFn(&$s, $fn)
{
return $s = $fn($s);
}
applyFn($sourceElement['description'], 'htmlspecialchars_decode');
applyFn($sourceElement['description'], 'trim'); // trim string
里程可能会有所不同:)