php 可变函数使用小结
时间:2019-04-20
本文章向大家介绍php 可变函数使用小结,主要包括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 可变函数使用小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- 第七节 关联映射之多对多
- 词向量fasttext,CNN is All,强化学习,自回归生成模型,可视化神经网络损失函数
- 比特币开始执行比特币支付协议发票减少钱包的支持
- Spring编程式事务处理不当引起的连接泄露事件
- Genaro在硅谷区块链孵化器开幕式上提出愿景
- 支付宝微信回应央行新规:继续探索条码支付新技术!
- 一个猎头的Python学习笔记01
- XMT.com超200万被区块链终端交易
- linux基础(三)
- 去哪儿网如何用“计算”的力量搞地推战
- 大数据干货系列(七)-Storm总结
- 6本PHP必备书籍,你值得拥有
- html编写规范
- Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- php微信分享到朋友圈、QQ、朋友、微博
- Numpy 多维数据数组的实现
- 使用matplotlib的pyplot模块绘图的实现示例
- PHP get_html_translation_table()函数用法讲解
- Laravel中10个有用的用法小结
- PHP7 echo和print语句实例用法
- python上selenium的弹框操作实现
- php分享朋友圈的实现代码
- Laravel框架Request、Response及Session操作示例
- 利用scikitlearn画ROC曲线实例
- 小程序微信退款功能实现方法详解【基于thinkPHP】
- PHP回调函数简单用法示例
- PHP explode()函数用法讲解
- 详解提高使用Java反射的效率方法
- PHP fopen函数用法实例讲解