PHP面向对象之private权限控制

2013 年 7 月 1 日5450

PHP面向对象之private权限控制

ZDNet开发频道 来源: ZDNet开发者频道 2013年06月08日 15:24:32

关键词:

本文摘要

private权限是PHP开发中经常用到的,PHP面向对象之private权限控制是如何实现的呢?private的属性/方法,只能在类定义的大括号内{},才能访问public 的属性, 在任意位置都可以访问。

  /***

  ====笔记部分====

  权限修饰符

  作用: 用来说明 属性/方法的权限特点

  写在 属性/方法前面

  共有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:wampwwwphpprivate.php on line 31

  //$lisi->secret();//对象不可以调用私有方法

  //Fatal error: Call to private method human::secret() from context '' in C:wampwwwphpprivate.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:wampwwwphpprivate.php on line 31

  //$lisi->secret();//对象不可以调用私有方法

  //Fatal error: Call to private method human::secret() from context '' in C:wampwwwphpprivate.php on line 32

  $lisi->tellme(); // 可以,因为是通过第17行,即,类内调用的.

  /*

  总结: private权限控制

  只能在类的{} 内调用,

  走出了{}, 谁也调不动.

  */

  ?>

本文导航

转发

文章评论

登录 (没有帐户?快速注册)

使用第三方帐号登录:

0 0