• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小怪物
猥琐但不邪恶
博客园    首页    新随笔    联系   管理    订阅  订阅
{php 初学头疼问题之:PHP5中的public,private和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; 
// Works
echo $obj->protected; 
// Fatal Error
echo $obj->private; 
// Fatal Error
$obj->printHello(); 
// Shows Public, Protected and Private


/**
* Define MyClass2
*/
class MyClass2 extends 
MyClass
{
    
// We can redeclare the public and protected method, but not private
    
protected $protected = 'Protected2'
;

     function 
printHello
()
     {
         echo 
$this->public
;
         echo 
$this->protected
;
         echo 
$this->private
;
     }
}

$obj2 = new MyClass2
();
echo 
$obj->public; 
// Works
echo $obj2->private; 
// Undefined
echo $obj2->protected; 
// Fatal Error
$obj2->printHello(); 
// Shows Public, Protected2, not Private

?>

public 相当于Var声明的~~整个页面随时可以修改 
private 只能在所属类中操作. 
protected 有继承关系的类内都可操作. 
……我就这样理解.

posted on 2011-06-02 19:40  小怪物  阅读(350)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3