[李景山php]每天TP5-20161218|thinkphp5-__callStatic函数使用
来源:互联网 发布:数据库管理系统考试 编辑:程序博客网 时间:2024/05/22 11:41
<?php/** * Created by PhpStorm. * User: 27394 * Date: 2016/11/9 * Time: 8:23 */trait Instance{ protected static $instance = null; /** * @param array $options * @return static */ public static function instance($options = []) {// 经典的 单例,牛叉 if (is_null(self::$instance)) { self::$instance = new self($options); } return self::$instance; } // 静态调用 public static function __callStatic($method, $params) {// 经典的 静态调用 if (is_null(self::$instance)) { self::$instance = new self(); } $call = substr($method, 1);// 获得 call 方式 如果是类似这样_callphone的方式 也就是私有函数 //is_callable// 判读当前函数是否存在 if (0 === strpos($method, '_') && is_callable([self::$instance, $call])) { return call_user_func_array([self::$instance, $call], $params); // 使用 这个 call_user_func_array 方式进行处理 } else { //echo __FUNCTION__."不存在"; throw new Exception("method not exists:" . $method); } }}class MyCall{ use Instance; static function callPhone(){ echo __FUNCTION__; } private function callMail(){ echo __FUNCTION__; }}MyCall::callPhone();// 正常调用的函数,会正常调用MyCall::_callMail();// 通过这样的方式,直接可以调用静态的私有方法,MyCall::callPhone1();// 调用不存在的静态函数的时候,在选用这个 __callStatic
0 0
- [李景山php]每天TP5-20161218|thinkphp5-__callStatic函数使用
- [李景山php]每天TP5-20161216|thinkphp5-helper.php-1
- [李景山php]每天TP5-20161217|thinkphp5-helper.php-2
- [李景山php]每天TP5-20161219|thinkphp5-softDelete.php
- [李景山php]每天TP5-20161220|thinkphp5-build.php
- [李景山php]每天TP5-20161221|thinkphp5-jump.php
- [李景山php]每天TP5-20161222|thinkphp5-Cache.php
- [李景山php]每天TP5-20161223|thinkphp5-Collection.php
- [李景山php]每天TP5-20161224|thinkphp5-Console.php-1
- [李景山php]每天TP5-20161225|thinkphp5-Console.php-2
- [李景山php]每天TP5-20161227|thinkphp5-Console.php-4
- [李景山php]每天TP5-20161228|thinkphp5-Console.php-5
- [李景山php]每天TP5-20161229|thinkphp5-Controller.php
- [李景山php]每天TP5-20161230|thinkphp5-Cookie.php
- [李景山php]每天TP5-20161231|thinkphp5-Db.php
- [李景山php]每天TP5-20170101|thinkphp5-Debug.php
- [李景山php]每天TP5-20170102|thinkphp5-Env.php
- [李景山php]每天TP5-20170103|thinkphp5-Exception.php
- 共享经济模式下的商业逻辑
- AES算法实现分析
- yield的字面意思
- 洛谷 2330 繁忙的都市 kruskal
- centos7上安装mysql(mariadb)\svnadmin.
- [李景山php]每天TP5-20161218|thinkphp5-__callStatic函数使用
- [JQ权威指南]搜索插件AutoComplete
- HTTP请求方式GET和POST的区别详解
- 洛谷 P1472 奶牛家谱 Cow Pedigrees
- 给公司代码分配未清过帐期间变式
- linux关于bashrc与profile的区别(转)
- 001-mac下Navicat连接MySQL数据库中文乱码问题
- 计算机组成——外设
- HDU 5965 扫雷(递推+枚举)