美文网首页
6.2 可变函数

6.2 可变函数

作者: 57fc17b7d598 | 来源:发表于2017-06-23 14:29 被阅读51次

可变函数的意思类似可变变量,指的是函数调用时,该函数的名字可以是一个变量,PHP会自动根据该变量的值去寻找同名的函数,以达到杂技般的效果。

但有一些内置的语言结构不能使用可变函数,如echo等很多类似的系统内置函数或语言结构。

// 定义函数
function foo(){
    echo 1;
}
function bar(int $num){
    echo $num;
}

// 定义变量
$fn1 = "foo";
// 输出 1
$fn1();

// 定义变量
$fn2 = "bar";
// 输出 2
$fn2(2);

// 花式调用、输出 1
"foo"();

对于类的方法也可以使用可变函数调用:

// 定义类
class Example{
    function foo(){
        echo 1;
    }
    static function bar(int $num){
        echo $num;
    }
}
// 实例化
$exam = new Example();

// 输出 1
$fn1 = "foo";
$exam->$fn1();

// 输出 2
$fn2 = "bar";
Example::$fn2(2);

// 花式调用 输出 1
$exam->{"foo"}();

// 花式调用 输出 2
Example::{"bar"}(2);

可变函数的变量也可以是 callable 类型:

// 定义类
class Example{
    function foo(){
        echo 1;
    }
    static function bar(){
        echo 2;
    }
}

// 输出 1
$fn1 = [new Example(), "foo"];
$fn1();

// 输出 2
$fn2 = ["Example", "bar"];
$fn2();

// 输出 2
$fn2 = "Example::bar";
$fn2();

相关文章

  • 6.2 可变函数

    可变函数的意思类似可变变量,指的是函数调用时,该函数的名字可以是一个变量,PHP会自动根据该变量的值去寻找同名的函...

  • 12. 可变参数函数

    12. 可变参数函数 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法 如果函数最后一个参数被记作...

  • Go基础语法(四)

    可变参数函数 可变参数函数是一种参数个数可变的函数。 如果函数最后一个参数被记作 ...T ,这时函数可以接受任意...

  • ★10.关于可变参数模板

    可变参数函数模板 可变参数类模板 可变参数函数模板的使用 转发参数包

  • Go语言可变参数

    可变参数 参数数量可变的函数称为可变参数函数 在声明可变参数函数时,需要在参数列表的最后一个参数类型之前加上省略符...

  • Golang 系列教程 第 12 部分,可变参数函数

    欢迎来到 Golang 系列教程 第 12 部分 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法...

  • php 将eval放在字符串中,然后调用字符串 失败的原因

    因为eval是一个语言构造器而不是一个函数,不能被可变函数调用。 可变函数 PHP 支持可变函数的概念。这意味着如...

  • Lua可变参数

    Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用...表示函数有可变的参数。 把可变参数...

  • 九月二号

    PHP函数之可变函数 所谓可变函数,即通过变量的值来调用函数,因为变量的值是可变的,所以可以通过改变一个变量的值来...

  • Go教程第九篇:可变参数函数

    可变参数函数 欢迎来到《Golang系列教程》的第九篇文章---可变参数函数。 什么是可变参数函数 ? 通常情况下...

网友评论

      本文标题:6.2 可变函数

      本文链接:https://www.haomeiwen.com/subject/plsccxtx.html