课程咨询 :025-86971863

南京PHP培训 > 雇主企业 > 企业笔试题 > php 对象直接访问私有属性
  • php 对象直接访问私有属性

    发布:南京PHP培训      来源:企业笔试题    

  • <?php

    header("content-type:text/html;charset=UTF-8");

    class Person{

    //私有的成员属性,对直接访问象

    private $name;

    private $age;

    private $sex;

    //魔术方法 __construct(), __set(), __unset(), __isset(), __unset().....

    function __construct($name="name1",$age =20,$sex="女"){

    $this->name=$name;

    $this->age=$age;

    $this->sex=$sex;

    }

    /*

    输出 Cannot access private property Person::$name

    对象不能直接访问和设置私有属性的值,但是通过魔术方法__get($proName), __set($proName,$proValue)可以做到.

    步骤:

    1.重写魔术方法__get($property) , __set($proName,$proValue)

    2.用对象直接访问或设置私有属性

    $p1->name="对象直接访问私有属性";

    echo $p1->name;

    3.对象直接访问或设置私有属性时,会自动调用魔法方法__get($proName), __set($proName,$proValue)

    */

    function __get($proName){

    return $this->$proName;

    }

    function __set($proName,$proValue){

    $this->$proName=$proValue;

    }

    function say(){

    echo "$this->name:我的年龄$this->age,性别:$this->sex<br>";

    }

    function run(){

    $this->left();

    $this->right();

    }

    private function left(){

    echo "left";

    }

    private function right(){

    echo "right";

    }

    //析构方法,对象销毁前自动调用

    function __destruct(){

    echo "$this->name:我走了<br>";

    }

    }

    $p1 = new Person("name1",15,"女");

    $p2 = new Person("name2",20,"男");

    $p3 = new Person("name3",30,"女");

    /*

    对象直接访问或设置私有属性

    */

    $p1->name="对象直接访问私有属性";

    echo $p1->name."<br>";

    /*

    输出,注意__destruct()的输出顺序

    ame1:我的年龄15,性别:女

    ame2:我的年龄20,性别:男

    ame3:我的年龄30,性别:女

    ame1:我走了

    ame3:我走了

    ame2:我走了

    */

    $p1->say();

    $p2->say();

    $p3->say();

    $p1=null;

    ?>

    南京php培训:nj.php.tedu.cn

    推荐文章

上一篇:Thinkphp 框架模板变量及模板输出

下一篇:php excel的自动加载与其他框架有冲突

最新开班日期  |  更多

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:04-28

PHP高级开发工程师精品班

PHP高级开发工程师精品班

开班日期:04-28

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:04-28

PHP高级开发工程师定制班

PHP高级开发工程师定制班

开班日期:04-28

  • 地址:南京市秦淮区太平南路333号金陵御景园8楼达内
  • 课程培训电话:025-86971863     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2002-2018 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56