如何在PHP中调用变量上的函数?

时间:2012-12-15 22:30:01

标签: php

我必须这样做:

$sourceElement['description'] = htmlspecialchars_decode($sourceElement['description']);

我想避免多余提及变量名称。我试过了:

htmlspecialchars_decode(&$sourceElement['description']);

call_user_func('htmlspecialchars_decode', &$sourceElement['description']);

那不起作用。这可能在PHP?在变量上调用函数

4 个答案:

答案 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

里程可能会有所不同:)