请各位帮我看看我的 private $isHungry=true;为什么不提示呢?不是应该访问不到么?

来源:4-2 访问控制-PHP面向对象编程

仰望星空望

2015-09-10 15:36

<?php

header("Content-type: text/html; charset=utf-8");

date_default_timezone_set("PRC");

class Human

{

    public $name;

public $weight;

//受保护的类成员,只有自身和其子类可以访问到

protected $height;

//也是受保护的成员,只能被自身访问

    private $isHungry=true;

public function eat($food)

{

echo $this->name."'s eating ".$food."<br>";

}

}


class NbaPlayer extends Human

{

public $team='';

public $PlayNum='';

//受保护的类成员,只能别自身访问到,当public function getAge()自身定义了这个方法时,就可以被自身访问到

private $age='50';


function __construct($name,$height,$weight,$team,$PlayNum)

{

echo"construct方法被调用<br>";

   $this->name=$name;

   $this->height=$height;

$this->weight=$weight;

$this->team=$team;

   $this->PlayNum=$PlayNum;

echo $this->isHungry."\n";

}

function __destruct()

{ echo"destruct方法被调用.$this->name.<br>";

}

   //定义方法[跟原来定义函数是一样的]

public function run()

{

echo'Running<br>';

}

public function jump()

{

echo'Jumping<br>';

}

//受保护的类成员age可以被自身调用

public function getAge()

{

echo $this->name."'is age is ".($this->age)."\n";

}

}



$wang=new NbaPlayer("wang","160cm","50kg","Bull","56");


//echo $wang->getAge()."\n";


//echo $wang->height;//提示不能访问





















?>


写回答 关注

3回答

  • qq_走走_0
    2015-09-11 09:38:32
    已采纳

    你打开php.ini配置文件 搜索error_reporting = 

    将后面的值改为E_ALL

    然后就会报notice错误

    construct方法被调用

    Notice: Undefined property: NbaPlayer::$isHungry in D:\phpStudy\WWW\test.php on line 33
    destruct方法被调用.wang.

    仰望星空望

    好的,谢谢你了

    2015-09-11 10:06:22

    共 1 条回复 >

  • 全民工作狂
    2015-09-17 14:56:36

    然而我的也没有提示-。-我还把php.ini里面的display_error打开了……

    仰望星空望

    什么情况!

    2015-09-21 15:46:54

    共 1 条回复 >

  • qq_走走_0
    2015-09-10 17:04:21

    private 属性和方法不会被子类继承,只能在自身里面访问

    仰望星空望

    恩,对呀,可是不提示是什么情况?

    2015-09-11 09:21:55

    共 1 条回复 >

PHP面向对象编程

从容应对面试官的知识宝典,带你握面向对象的最重要的核心能力

70154 学习 · 361 问题

查看课程

相似问题