PHP报错:: Cannot access protected property
代码如下:<?php/***DefineMyClass*/classMyClass{public$public='Public';protected$protected=...
代码如下:
<?php
/**
* Define MyClass
*/
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; // 这行能被正常执行
echo $obj->protected; // 这行会产生一个致命错误
echo $obj->private; // 这行也会产生一个致命错误
$obj->printHello(); // 输出 Public、Protected 和 Private
当我访问$project的时候,出现致命错误。project定义的变量,不是可以在自己的类中调用么,为什么还报错呢? 展开
<?php
/**
* Define MyClass
*/
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; // 这行能被正常执行
echo $obj->protected; // 这行会产生一个致命错误
echo $obj->private; // 这行也会产生一个致命错误
$obj->printHello(); // 输出 Public、Protected 和 Private
当我访问$project的时候,出现致命错误。project定义的变量,不是可以在自己的类中调用么,为什么还报错呢? 展开
3个回答
展开全部
受访问修饰限定符限制,
protected 是作用在继承链内的,在继承链内可被访问
private 就是单独属于这个类的,类外无法访问
protected 是作用在继承链内的,在继承链内可被访问
private 就是单独属于这个类的,类外无法访问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你访问保护变量和私有变量,当然会出错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询