const: 定義常數,一般定義後不可改變
static: 靜態,類別名稱可以存取
public: 表示全域,類別內部外部子類別都可以存取;
private: 表示私有的,只有本類別內部可以使用;
protected: 表示受保護的,只有本類別或子類別或父類別中可以存取;
定義常數也可用" define"定義。
const與define在定義常數時會有以下區別:
1. const用於類別成員變量,一經定義不可修改,define用於全域常數,不可用於類別成員變量的定義,
const可在類別中使用,define不能。
2. const定義的常數大小寫敏感,而define可透過第三個參數(為TRUE表示大小寫不敏感)來指定大小寫是否敏感。
在運行時定義一個常數。 define('TXE',100,TRUE);
3. const不能在條件語句中定義常數,而define函數可以。 if($a>10){define('LE','hello');}
class Demo { //定义常量【自php5.3后】,一个常量是属于一个类的,而不是某个对象的 //不可改变的 const EVENT = 'const'; static $event = 'static'; public $eventPublic = 'public'; private $eventPrivate = 'private'; protected $eventProtected = 'protected'; public function test() { //使用self访问类中定义的常量 echo self::EVENT.'<br/>'; //同常量一样使用self echo self::$event.'<br/>'; //公共变量,受保护的变量,私密的变量通过$this访问 echo $this->eventPublic.'<br/>'; //受保护的和私密的变量只能在当前类中访问 echo $this->eventPrivate.'<br/>'; echo $this->eventProtected.'<br/>'; } //魔术方法 public function __get($name) { return $this->$name; } } class One extends Demo { public function testOne() { //可继承父级使用parent访问 echo parent::EVENT.'<br/>'; echo parent::$event.'<br/>'; //也可通过父类直接访问 echo Demo::EVENT.'<br/>'; echo Demo::$event.'<br/>'; //继承父级中的成员变量后,只能访问公共变量 //私有变量和受保护的变量不能在子类中访问 echo $this->eventPublic; } } $obj_1 = new Demo; $obj_1->test(); echo "=================<br/>"; $obj = new One; $obj->testOne();
運行結果:
const static public private protected ================= const static const static public
相關教學:PHP影片教學
#以上是區別PHP中的const,static,public,private,protected的詳細內容。更多資訊請關注PHP中文網其他相關文章!