透過className::functionNmae()、實例化、parent、self結論
className::functionNmae() 需是靜態方法(public模式)
parent::functionNmae::functionNmae() 父類方法(public、protected兩種模式)
self::functionNmae() 此類別需為靜態方法(三種模式)
實例化:實例化後可存取public模式的靜態方法或普通方法
一、直接存取(透過className::functionNmae()與實例化):
一、直接存取(透過className::functionNmae()與實例化):
結論:
| 可以透過實例$obj->functionName()存取
| 無法透過className::functionNmae() 存取
protected
| 不可透過className::functionNmae() 存取
private
() 訪問
<?<span>php </span><span>/*</span><span>* * * @authors HG (hg0728@qq.com) * @date 2015-05-26 17:12:02 * @version 1.0 </span><span>*/</span><span>header</span>("Content-type:text/html;charset=utf-8"<span>); </span><span>class</span><span> A { </span><span>static</span><span>$name</span>='这是类A的静态变量'<span>; </span><span>static</span><span>public</span><span>function</span><span> stc_pc(){ </span><span>echo</span> '这是类A的公共静态方法<br />'<span>; } </span><span>static</span><span>function</span><span> stc(){ </span><span>echo</span> '这是类A的静态方法<br />'<span>; } </span><span>static</span><span>protected</span><span>function</span><span> stc_pd(){ </span><span>echo</span> '这是类A受保护的静态方法<br />'<span>; } </span><span>static</span><span>private</span><span>function</span><span> stc_pe(){ </span><span>echo</span> '这是类A私有的静态方法<br />'<span>; } } A</span>::stc_pc();<span>//</span><span>可访问</span><span>A</span>::stc();<span>//</span><span>可访问</span><span>A</span>::<span>$name</span>;<span>//</span><span>不报错 //A::stc_pd();//不可访问 //A::stc_pe();//不可访问</span><span>echo</span> '<br><br>通过实例化访问<br><br>'<span>; </span><span>$a</span> = <span>new</span><span> A(); </span><span>$a</span>->stc_pc();<span>//</span><span>可访问</span><span>$a</span>->stc();<span>//</span><span>可访问 //$a->$name;//报错 //$a->stc_pd();//不可访问 //$a->stc_pe();//不可访问</span><span>/*</span><span>******************* | 可以 通过 className::functionNmae() 访问 public | | 可以 通过实例 $obj->functionName() 访问 | 不可 通过 className::functionNmae() 访问 protected | | 不可 通过实例 $obj->functionName() 访问 | 不可 通过 className::functionNmae() 访问 private | | 不可 通过实例 $obj->functionName() 访问 *******************</span><span>*/</span>二、直接訪問(self::functionNmae())結論:self::functionNmae();需是靜態方法(三種模式都可)
<?<span>php </span><span>/*</span><span>* * * @authors HG (hg0728@qq.com) * @date 2015-05-26 17:18:50 * @version 1.0 </span><span>*/</span><span>header</span>("Content-type:text/html;charset=utf-8"<span>); </span><span>class</span><span> C { </span><span>static</span><span>$name</span> = "静态变量"<span>; </span><span>static</span><span>public</span><span>function</span><span> stc_pc(){ </span><span>echo</span> '静态公共方法<br>'<span>; self</span>::<span>stc_pd(); self</span>::<span>stc_pe(); self</span>::<span>stc(); </span><span>//</span><span>self::func();//报错但有结果</span><span> } </span><span>static</span><span>protected</span><span>function</span><span> stc_pd(){ </span><span>echo</span> '静态受保护方法<br>'<span>; } </span><span>static</span><span>private</span><span>function</span><span> stc_pe(){ </span><span>echo</span> '静态受保护方法<br>'<span>; } </span><span>static</span><span>function</span><span> stc(){ </span><span>echo</span> '静态普通方法<br>'<span>; } </span><span>function</span><span> func(){ </span><span>echo</span> '普通方法<br>'<span>; } } C</span>::<span>stc_pc(); </span><span>/*</span><span>***** self::functionNmae();需是静态方法(三种模式都可) *****</span><span>*/</span>三、透過子類別存取父類別(parent::functionNmae()和實例化)結論:parent::functionNmae(); private不可訪問
$obj->functionNmae(); private不可訪問
$obj->functionN