• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php 可变函数使用小结

    可变函数

    PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。

    变量函数不能用于语言结构,例如 echo(),print(),unset(),isset(),empty(),include(),require() 以及类似的语句。需要使用自己的包装函数来将这些结构用作变量函数。

    先将我的伪代码写上。

     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();
     }

    在 getLists 中,有一个 $isPage 的参数。本意是传入 get 就是获取全部数据,paginate 就是分页。写完以后觉得哪里不对。在我们平常的写法中,查找全部数据 $this->model->orderBy($order, $sort)->get(); 是这样的,我也未见过使用变量来替换 get() 的。在实际运行中,程序正常执行。随后在论坛中询问这种写法。接下来就要引入一个概念,《可变函数》。

    什么是可变函数?

    PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。

    了解了这个概念以后那么上述程序就可以讲的通了。$isPage 在程序运行中,替换为 get, 而 $isPage 后有一个圆括号,那么程序就会寻找同名函数。进而继续执行。

    示例:

    ?php
    function foo() {
     echo "In foo()br />\n";
    }
    function bar($arg = '') {
     echo "In bar(); argument was '$arg'.br />\n";
    }
    $func = 'foo';
    $func();  // 执行 foo(); 命令行中输出:In foo()br />
    $func = 'bar';
    $func('test'); // 执行 bar();命令行中输出:In bar(); argument was 'test'.br />

    可变函数的语法来调用一个对象的方法。

    ?phpclass Foo
    {
     function Variable()
     {
      $name = 'Bar';
      $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

    当调用静态方法时,函数调用要比静态属性优先。Variable 方法和静态属性示例。

    ?php
    class Foo
    {
     static $variable = 'static property';
     static function Variable()
     {
      echo 'Method Variable called';
     }
    }
    echo Foo::$variable; // This prints 'static property'. It does need a $variable in this scope.
    $variable = "Variable";
    Foo::$variable(); // This calls $foo->Variable() reading $variable in this scope.

    总结

    以上所述是小编给大家介绍的php 可变函数使用小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • php之可变函数的实例详解
    • php 函数使用可变数量的参数方法
    • php可变长参数处理函数详解
    • php定义参数数量可变的函数用法实例
    • PHP可变函数的使用详解
    • JS与PHP向函数传递可变参数的区别实例代码
    • php 获取可变函数参数的函数
    上一篇:PHP使用debug_backtrace方法跟踪调试代码调用详解
    下一篇:Laravel框架分页实现方法分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php 可变函数使用小结 php,可变,函数,使用,小结,