__get __set

<?php
class Person
{
  //下面是人的成员属性,都是封装的私有成员
  private $name; //人的名子
  private $sex; //人的性别
  private $age; //人的年龄
  //__get()方法用来获取私有属性
  private function __get($property_name)
  {
    echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";
    if(isset($this->$property_name))
    {
      return($this->$property_name);
    }else{
      return(NULL);
    }
  }
  //__set()方法用来设置私有属性
  private function __set($property_name, $value)
  {
    echo "在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>";
    $this->$property_name = $value;
  }
}
$p1=newPerson();
//直接为私有属性赋值的操作,会自动调用__set()方法进行赋值
$p1->name="张三";
$p1->sex="男";
$p1->age=20;
//直接获取私有属性的值,会自动调用__get()方法,返回成员属性的值
echo "姓名:".$p1->name."<br>";
echo "性别:".$p1->sex."<br>";
echo "年龄:".$p1->age."<br>";
?> 
时间: 2024-10-09 07:43:54

__get __set的相关文章

PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep

PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload 1.__get.__set这两个方法是为在类和他们的父类中没有声明的属性而设计的__get( $property ) 当调用一个未定义的属性时访问此方法__set( $proper

PHP 魔术方法 __get __set (二)

慢慢长寻夜,明月高空挂 __get() - 读取不可访问属性的值时,__get() 会被调用 __set() - 在给不可访问属性赋值时,__set() 会被调用 <?php /** * 清晰的认识__get() __set() */ class Example { //公有的属性 public $public = 'pub' ; //受保护的 - 子类中该属性可用 protected $protected = 'pro'; //私有的 - 只能此类使用此属性 private $private

PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr

PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_

【转】PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr

PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload 1.__get.__set这两个方法是为在类和他们的父类中没有声明的属性而设计的__get( $property ) 当调用一个未定义的属性时访问此方法__set( $proper

PHP中的魔术方法:__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload

1.__get.__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的: __get( $property ) 当调用一个未定义的属性时访问此方法: __set( $property, $value ) 给一个未定义的属性赋值时调用: 这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性). 2.__isset.__unset __isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法: _

PHP中的魔术方法:__construct, __destruct , __call,__get, __set, __isset, __unset , __toString, __set,__clone and __autoload

1.__get.__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的: __get( $property ) 当调用一个未定义的属性时访问此方法: __set( $property, $value ) 给一个未定义的属性赋值时调用: 这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性). 2.__isset.__unset __isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法: _

__get().__set.__isset,__unset魔术方法

一般来说,总是把类的属性定义为 private .这更符合现实的逻辑. 但是对属性的读取和赋值操作非常频繁的,因此在PHP中,预定义了两魔术方法 "__get()"用来获取私有成员属性值的,只有一个参数获取的属性名称. "__set()"用来为私有属性设值的,有两个参数,第一参数为属性名,第二个属性值. (用__set,不用我们手工去调用,它也可以做成私有的的,是在直接设置私有属性值的时候自动调用的,同样属性私有的已经被封装上了.) 以及检查属性的方法"__isset()"和

__construct __destory __call __get __set

1,__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用. 我们知道 php5对象模型 < ,所以__construct()作为类的默认的构造函数 而不会调用同类名函数 和__construct()方法的话,php5会默认调用构造函数 ,那么如果我们同时定义构造函数 是类的构造函数 的函数> 2,__destruct() 当删除一个对象或对象操作终止的时候,调用该方法. class Test { function __destruct() { echo "

PHP 对象 魔术方法 __get __set __isset __unset

class Person{     private $age = 20;     private $sex = 'male';     //__get()自动调用,是在直接访问私有成员时,自动调用!一个参数 属性值     function __get($value){         return $this->$value;     }     //__set()自动调用,是在直接设置私有属性值时,一个参数是属性名,一个参数是属性值     function __set($name,$val