PHP面向对象之private权限控制

7次阅读

/***
==== 笔记部分 ====
权限修饰符
作用: 用来说明 属性 / 方法的权限特点
写在 属性 / 方法前面
共有 3 个权限修饰符
private 私有的   , 保护的最严
protected 保护的
public 公共的     , 保护的最松
疑问:
public 修饰的属性 / 方法, 可以在哪儿访问?
private 修饰的属性 / 方法, 可以在哪儿访问?
如何判断属性 / 方法 有没有权限访问?
答: 看访问时的位置!
private 的属性 / 方法, 只能在类定义的大括号内 {}, 才能访问
public 的属性, 在任意位置都可以访问
***/
[php]
<?php
class human{
public $mood='';// 心情, 公有
private $money=500;// 钱, 私有的
public function getmoney(){
return $this->money;
}
// 定义私有秘密方法
private function secret(){
echo ' 我那天偷吃了一块糖 ';
}
// 告诉我你的秘密方法
public function tellme(){
$this->secret();
}
}
$lisi=new human();
$lisi->mood='happay';
echo $lisi->mood,'<br />';//happay
echo $lisi->getmoney(),'<br />';//500
//echo $lisi->money=300;// 对象不可以调用私有属性
//Fatal error: Cannot access private property human::$money in C:\wamp\www\php\private.php on line 31
//$lisi->secret();// 对象不可以调用私有方法
//Fatal error: Call to private method human::secret() from context '' in C:\wamp\www\php\private.php on line 32
$lisi->tellme();    // 可以, 因为是通过第 17 行, 即, 类内调用的.
/*
总结: private 权限控制
只能在类的 {} 内调用,
走出了 {}, 谁也调不动.
*/
?>
<?php
class human{
public $mood='';// 心情, 公有
private $money=500;// 钱, 私有的
public function getmoney(){
return $this->money;
}
// 定义私有秘密方法
private function secret(){
echo ' 我那天偷吃了一块糖 ';
}
// 告诉我你的秘密方法
public function tellme(){
$this->secret();
}
}
$lisi=new human();
$lisi->mood='happay';
echo $lisi->mood,'<br />';//happay
echo $lisi->getmoney(),'<br />';//500
//echo $lisi->money=300;// 对象不可以调用私有属性
//Fatal error: Cannot access private property human::$money in C:\wamp\www\php\private.php on line 31
//$lisi->secret();// 对象不可以调用私有方法
//Fatal error: Call to private method human::secret() from context '' in C:\wamp\www\php\private.php on line 32
$lisi->tellme();    // 可以, 因为是通过第 17 行, 即, 类内调用的.
/*
总结: private 权限控制
只能在类的 {} 内调用,
走出了 {}, 谁也调不动.
*/
?>

正文完