php - PHP 中可以创建临时函数/宏吗?

标签 php function macros temporary

请看下面的插图:

// Trims input, fixes spaces and encodes bad glyphs. Also works with arrays.
function prepare_param($param)
{
    $retval = "";

    function prc($param)
    {
        $r = split(" ", trim($param));
        foreach($r as $i => $e)
            $r[$i] = urlencode($e);
        return join("+", $r);
    }

    // If input is an array
    if(is_array($param))
    {
        $retval = array();

        foreach($param as $e)
            $retval[] = prc($e);
    }
    // If input is a string
    else if(is_string($param))
    {
        return prc($param);
    }
    else throw new Exception("Invalid input! Expected String or Array.");
}

显然,函数 prc 现在将被全局声明,即使是在函数内部声明。有没有办法遵循这个原则,在另一个函数中创建一个小函数/宏,以免浪费全局范围?另一种方法是创建一个具有私有(private)函数的类,这对我来说似乎有点过分了。

感谢任何帮助

最佳答案

您可能想要closures ,它们是匿名函数。

关于php - PHP 中可以创建临时函数/宏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020650/

相关文章:

C 预处理器宏顺序

c++ - 将#include 指令包装到宏中

c++ - 在 C++ 中是否可以仅在用户设置 makefile 中的标志时调用函数?

php - 在 MySQL DateTime 中插入时间戳数组

php - MYSQL 按第二张表排序

css - Scss 函数中的嵌套 if 语句

php - echo 来自另一个文件中函数的 SELECT 查询的结果

javascript - 将新函数插入数组 - Javascript

php - 如何在不同的表列中获取另一个表数据?

php - PDO 使用 "where"子句从表中选择所有数据