zoukankan      html  css  js  c++  java
  • php之属性重载和方法重载

    <?php
    /**
     * 
     * @authors Your Name (you@example.org)
     * @date    2016-06-13 20:40:19
     * @version $Id$
     */
    //属性重载
    
    class Student{
        private $name;
        public $age;
        public $xuehao;
    
        public function __construct($name,$age,$xuehao)
        {
        	$this->name=$name;
        	$this->age=$age;
        	$this->xuehao=$xuehao;
        }
        	//当访问一个不存在的属性是自动
        //读取不可访问属性的值或者不存在时
        public function __Get($name)
        {
         return "属性不存在";		
    
        }
    
        //在给不可访问属性赋值或者不存在时
        
        public function __Set($name ,  $value )
        {
        	@$this->data[$name]=$value;
        	echo  "Setting {$name} to {$value}
    " ;
        }
    
    
        //判断属性是否存在
        public function __isset ($name)
        {
        	var_dump($name);
        }
        //方法重载
        public function __call($name,$value)
        {
        	echo "方法不存在或不能被调用";
        }
    
        //当对象转换为字符串时自动调用
        public function __Tostring()
        {
           return $this->name;
        }	
    
    
    }
    
    $p=new Student("a","10","20100");
    echo $p;
    

      

    PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法。我们是通过魔术方法(magic methods)来实现的。

    当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。本节后面将使用"不可访问属性(inaccessible properties)"和"不可访问方法(inaccessible methods)"来称呼这些未定义或不可见的类属性或方法。

    所有的重载方法都必须被声明为 public。 

     

     

     

  • 相关阅读:
    Dropout:随机失活
    SGD的优化:SGD+Momentum、Nesterov Momentum、AdaGrad、 RMSProp、Adam
    Batch Normalization:批量归一化
    Zero-Centered:零均值化
    Activation Functions:激活函数
    Pooling Layer:池化层
    Convolution Layer:卷积层
    「狐狸」的模板库
    割点
    线段树基础知识详解
  • 原文地址:https://www.cnblogs.com/mengluo/p/5582103.html
Copyright © 2011-2022 走看看