博主信息
笑颜常开的博客
博文
61
粉丝
0
评论
0
访问量
28053
积分:0
P豆:211.5

属性和方法的重载

2019年04月10日 20:48:57阅读数:391博客 / 笑颜常开的博客/ PHP开发

<?php
//重载:动态地创建类属性和方法
//重载的实现手段:通过魔术方法
//一、属性重载
//const IS_ISSET=true;
//const IS_GET=true;
//const IS_SET=true;
//const IS_UNSET=false;
//class Visit{
//    protected $data=[];
//    public function __get($name)
//    {
//        // TODO: Implement __get() method.
//        return IS_GET ? $this->data[$name]:'非法访问';
//    }
//    public function __set($name,$value)
//    {
//        // TODO: Implement __get() method.
//        return IS_SET ? $this->data[$name]=$value:'非法访问';
//    }
//}
//$visit=new Visit();
//if(isset($visit->table)){
//    echo $visit->table,'<br>';
//}else{
//    $visit->table='table_staff';
//}
////访问
//echo $visit->table.'<br>';
////更新
//$visit->table='table_foods';
////访问
//echo $visit->table,'<br>';
//unset($visit->table);
require 'inc/Site.php';
class Web{
   public function __call($name, $arguments)
   {
       // TODO: Implement __call() method.
//        方法重载更多地用于跨类的方法调用上
   return call_user_func_array([(new Site),'show'],$arguments);
   }
   public static function __callStatic($name, $arguments)
   {
       // TODO: Implement __callStatic() method.
//    跨类调用一个静态方法
   return call_user_func_array(['Site','add'],$arguments);
   }
}
$web=new Web();
//访问一个不存在的方法
echo $web->show('php中文网','海量资源,公益免费'),"<hr>";
//访问一个不存在的静态方法
echo Web::add(30,50);

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • ,java中是多态不同表现;其中写(Overriding)是父类与子类之间多态一种表现,(Overloading)是一个类中多态一种表现。
    Java中是指:两个名相同,但参数类型、参数个数不一致,那么就可以说一个是另一个。在中,返回类型与修饰符也可以不相同。
    c++运算符有:1、使运算符成为该类成员函数,这允许运算符函数访问类私有成员;2、使成员函数成为独立分开函数,当以这种时,运算符函数必须声明为类友元才能访问类私有成员
    php判断是否存在:【method_exists(mixed $object,string $method_name );property_exists(mixed $class,string
    静态不需要实例化即可调用。因为静态存放位置是在类里,调用为"类名::名"。静态不能调用非静态。因为非静态需要实例化后,存放在对象里。
    php中静态:1、静态不能访问这个类中普通;2、从当前类中访问静态,可以使用self关键字;3、不能在对象中调用静态
    php实现:1、弱类型,无需定义变量类型;2、可选参数,允许变量设置默认值;3、可变参数;4、使用魔术【__call()】。
    c++中判断依据是:1、函数形参个数;2、函数形参类型;3、形参顺序;4、const。需要注意是:返回值不能用来判断函数,因为编译器在编译时不会去判断函数返回类型。
    jquery更改img元素src:首先在html文件中,给button按钮绑定onclick点击事件;然后在js标签内创建editsrc函数;接着通过“id(myimg)”获得img对象;最后使用
    本篇文章带大家了解一下PHP中静态静态,介绍一下静态本质、静态变量普通变量区别,希望对大家有所帮助。
    下面由golang教程栏目给大家分享5种文件变更时自动Go程序,希望对需要朋友有所帮助!
    css中box-align与box-pack可以用来设置框内元素位置,本文就来为大家介绍一下css中box-align与box-pack使用,希望对大家有一定帮助。
    JavaScript对象迭代比较
    CSS伪元素(pseudo-elements)非常有用——你可以用它制作出CSS三角形,用在提示框上面,还可以用它完成很多简单任务,而不需要多余HTML元素。
    本篇文章给大家介绍一下包管理工具 NPM yarn 下安装超时解决。有一定参考价值,有需要朋友可以参考一下,希望对大家有所帮助。
    我们以前一直在使用placeholders,但以前必须要用JavaScript实现而HTML5里给JavaScript标记提供async,使JavaScript能异步加执行,本文将详细介绍该功能
    :1、查看已经安装docker安装包;2、执行【yum -y remove】命令分别删除;3、删除docker镜像;新安装:执行【yum install -y yum-utils】命令。
    important”语句来设置权,该语句为开发者提供了一个增加样式权;语格式“:值 !important;”。“!
    打印机驱动:1、打开控制面板,进入【设备打印机】选项;2、删除打印机设备,启电脑;3、新进入【设备打印机】选项,点击【打印服务器】;4、删除驱动程序驱动程序包即可。
    正如你可能已经知道那样,Object.keys()只访问对象本身可枚举。这是合理,因为大多数时候只有这些需要评估。