二狗子啊
2018-03-24 15:00
$car = new Car(); echo $car->name; //调用对象的属性 echo $car->color; //错误 受保护的属性不允许外部调用 echo $car->price; //错误 私有属性不允许外部调用
其实就是封装,这样做比较安全,不容易给人修改,查查封装就右以理解了
这个要配合前面定义的类来理解
class Car {
//定义公共属性
public $name = '汽车';
//定义受保护的属性
protected $corlor = '白色';
//定义私有属性
private $price = '100000';
}在calss Car的花括号{}里面调用就是内部调用,在{}外面调用就是外部调用,只有public可以外部调用,所以才会出现第二个和第三个错误的现象!
class A {
protected $name = 'aaa';
protected function getName() {
return 'hello';
}
public function say() {
return $this->getName();
}
}
$a = new A();
echo $a->name; // error
echo $a->getName(); // error
echo $a->say(); // successwish you understand !
在定义类的时候,有一个花括号{},在花括号里调用就属于内部调用,在花括号外面调用就属于外部调用。
首先类的属性有三种:public 、protected、private。
public可以在任何地方被调用,而受保护属性和私有属性则不一样。
私有属性private不允许外部调用,指的的是该属性只能在你声明的类中调用,你声明了Car这个类,就是只能在class Car{}中调用,离开这个类,就不能调用了。
如果实在要调用,可以使用友元函数来进行调用。
而受保护属性protected不仅可以在你声明的类中调用,还可以在它的子类中调用。
PHP进阶篇
181964 学习 · 2668 问题
相似问题