PHP定义可以用于带参数的函数

时间:2014-09-24 06:00:48

标签: php superglobals

我正在编写一个脚本,根据当前数据库中的内容生成HTML,我更喜欢将HTML格式化,特别是使用标签来显示嵌套。我有一个简单的函数来生成一些选项卡:

function addTab($inNum) {
    $out = "";
    for ($i = 0; $i < $inNum; $i++) $out .= "\t";
    return $out;
}

为了方便阅读PHP,我做了这个:

$T = "addTab";

这样我就可以使用$T(5)来表示将5 \t连接到字符串HTML。就个人而言,我发现这种通过字符串指向函数的语法是不直观的,使用它的函数需要global $T

是否可以使用define()以便在函数范围内使用T(5)之类的内容?

2 个答案:

答案 0 :(得分:2)

不,你不能定义一个功能&#34;以你想要的方式。

为什么不使用:

function T($inNum)
{
    return addTab($inNum);
}

然后你可以像你提到的那样写T(5)

答案 1 :(得分:1)

使用define时,您可以定义常量。 根据手册:

The value of the constant; only scalar and null values are allowed. Scalar values are integer, float, string or boolean values. It is possible to define resource constants, however it is not recommended and may cause unpredictable behavior.

因此,您无法使用函数的值定义常量。

但是仍然有函数变量在php中工作:

function addTab($inNum) {
    $out = "";
    for ($i = 0; $i < $inNum; $i++) $out .= "*";
    return $out;
}
$T = 'addTab';
$r = $T(5);
var_dump($r);    // string(5) "*****"