Home >Backend Development >PHP Tutorial >php variable function

php variable function

不言
不言Original
2018-07-06 17:37:062164browse

This article mainly introduces the variable functions of PHP, which has certain reference value. Now I share it with everyone. Friends in need can refer to it

PHP variable functions

Let me write my pseudocode first.

    protected $model;

    public function __construct(Category $category)
    {
        $this->model = $category;
    }

    public function getLists($request, $isPage = 'get', $order = 'created_at', $sort = 'desc')
    {
        return $this->model->orderBy($order, $sort)->$isPage();
    }

In getLists, there is a parameter of $isPage. The original intention is to pass in get to get all the data, and paginate to paginate. After I finished writing, I felt something was wrong. In our usual way of writing, find all data $this->model->orderBy($order, $sort)->get(); This is like this, I have never seen it used Variables to replace get(). In actual operation, the program executes normally. Then asked about this writing method in the forum. Next, we will introduce a concept, "Variable Function".

What is a variable function?

PHP supports the concept of variable functions. This means that if there are parentheses after a variable name, PHP will look for a function with the same name as the variable's value and try to execute it.

After understanding this concept, the above procedure will make sense. When the program is running, $isPage is replaced by get, and there is a parenthesis after $isPage, then the program will look for a function with the same name. Then continue execution.

Example:
<?php
function foo() {
    echo "In foo()<br />\n";
}

function bar($arg = &#39;&#39;) {
    echo "In bar(); argument was &#39;$arg&#39;.<br />\n";
}
$func = &#39;foo&#39;;
$func();        //  执行 foo(); 命令行中输出:In foo()<br />

$func = &#39;bar&#39;;
$func(&#39;test&#39;);   // 执行 bar();命令行中输出:In bar(); argument was &#39;test&#39;.<br />
Variable function syntax to call an object's method.
<?php
class Foo
{
    function Variable()
    {
        $name = &#39;Bar&#39;;
        $this->$name(); // This calls the Bar() method
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();   // This calls $foo->Variable()

// 命令行执行输出: This is Bar
When calling static methods, function calls take precedence over static properties. Variable methods and static properties examples.
<?php
class Foo
{
    static $variable = &#39;static property&#39;;
    static function Variable()
    {
        echo &#39;Method Variable called&#39;;
    }
}

echo Foo::$variable; // This prints &#39;static property&#39;. It does need a $variable in this scope.
$variable = "Variable";
Foo::$variable();  // This calls $foo->Variable() reading $variable in this scope.

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

php quick sort code

The above is the detailed content of php variable function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn