PHP面向对象之private权限控制

/***
  ====笔记部分====
  权限修饰符
  作用: 用来说明 属性/方法的权限特点
  写在 属性/方法前面
  共有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权限控制
  只能在类的{} 内调用,
  走出了{}, 谁也调不动.
  */
  ?>