Search code examples
phpsuperglobals

Can a PHP define be used for a function with an argument


I am writing a script that generates HTML based on what is currently in a database and I prefer to have the HTML be formatted, particularly with tabs to show nesting. I have a simple function to generate some number of tabs:

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

For convenience of reading the PHP, I made this:

$T = "addTab";

So that I could just use $T(5) to say concatenate 5 \t to the string HTML. Personally I find this kind of syntax of pointing to a function by string to be unintuitive and functions that use it require global $T.

Is it possible to use a define() so that something like T(5) could be used within function scope?


Solution

  • No, you cannot "define a function" in the way you desire.

    Why not use:

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

    Then you can just write T(5), as you mentioned.