privatephp
⑴ php private 成員屬性 為什麼子類還可以使用
private 成員是不能被派生類所繼承的和覆蓋,但是可以在派生類中重新被定義。派生類中定義的private成員和基類中的private沒有任何關系。
⑵ private 在PHP里到底有什麼用
主要是編碼時候的引用與封裝, 工作中一般別的地方用不到的變數函數就用private, 減少找代碼的時候查詢量太大, 因為寫大了代碼很多, 一個一個看就是浪費時間了, 用不到的寫的時候就private一下, 不寫後面找bug的時候就蛋疼了。。。
還有就是封裝庫
⑶ php子類能不能重寫父類的private方法
<?php
privatefunctionfun(){
//不能被繼承和外部調用
}
?>
private 不能被繼承 何來重寫????
⑷ [php]private public protected 三者沒弄明白
public 表示全局,類內部外部子類都可以訪問;
private表示私有的,只有本類內部可以使用;
protected表示受保護的,只有本類或子類或父類中可以訪問;
<?
//父類
class father{
public function a(){
echo "function a";
}
private function b(){
echo "function b";
}
protected function c(){
echo "function c";
}
}
//子類
class child extends father{
function d(){
parent::a();//調用父類的a方法
}
function e(){
parent::c(); //調用父類的c方法
}
function f(){
parent::b(); //調用父類的b方法
}
}
$father=new father();
$father->a();
$father->b(); //顯示錯誤 外部無法調用私有的方法 Call to protected method father::b()
$father->c(); //顯示錯誤 外部無法調用受保護的方法Call to private method father::c()
$chlid=new child();
$chlid->d();
$chlid->e();
$chlid->f();//顯示錯誤 無法調用父類private的方法 Call to private method father::b()
?>
⑸ php protected private什麼時候該用什麼
private 是完全私有的,只有當前類中的成員能訪問到. protected 是受保護的,只有當前類的成員與繼承該類的類才能訪問. 這兩個是訪問類中成員許可權的限制符.在類外如果想使用類中的成員,只能直接使用public類型的,protected和private都是不能訪問的
⑹ PHP如何修改和獲取private變數的值
//__get()方法用來獲取私有屬性
private function __get($property_name)
{
if(isset($this->$property_name))
{
return($this->$property_name);
}else
{
return(NULL);
}
}
//__set()方法用來設置私有屬性
private function __set($property_name, $value)
{
$this->$property_name = $value;
}
有了這2個方法以後,就可以直接執行:
echo $instance->$property
或 $instance->$property = 「a」;
來獲取和修改private變數的值了,如果沒有手動添加__get();和__set();方法則會報錯,
因為我們要訪問的是私有變數。
希望可以點贊,謝謝。
⑺ PHP中private和public還有protected的區別
public:聲明方來法和屬性可以被隨意訪問源。
Protected:聲明的方法和屬性只能被類本身和其繼承子類訪問。
private:只能被定義屬性和方法的類訪問。
private 是完全私有的,只有當前類中的成員能訪問到.
protected 是受保護的,只有當前類的成員與繼承該類的類才能訪問.
protected的訪問權介於public和private之間,實際上三者的區別就是許可權問題,private和protected區別主要體現在其繼承類的訪問許可權上,這些你可以自己編寫一個程序,寫個類,編譯一下你就很清楚他們許可權的區別了。
私有成員private member
只能被成員函數和類的友元訪問
實行信息隱藏的類把其數據成員聲明為private
被保護成員protected member
對派生類derived class 就像public 成員一樣
對其他程序則表現得像private
⑻ php 中使用private static 方法名 是什麼意思
private 關鍵字聲名 一個私有的方法或屬性;定義了private的方法或屬性在類的外部不能訪問,只能在本類中使用。
類中使用私有方法:
$this->屬性 或 方法()
static 關鍵字 是創建一個靜態方法或靜態屬性;定義了static 的方法或屬性不需要實例化就可以使用。
訪問靜態變數 類名::$變數名;
訪問靜態方法 類名::方法名();
訪問本類靜態變數 self::$變數名;
訪問本類靜態方法 self::方法名();
訪問父類靜態變數 parent::$變數名;
訪問父類靜態方法 parent::方法名();
⑼ php怎麼理解這些個關鍵字啊,public;private;protect;final;static;const;我感覺這
public: 公有屬性或方法
在子類中可以通過self::var 或self::method 來調用,可以通過parent::method來調用父類中的方法,但不能調用公有屬性.
在實例中可以通過$obj->var或self::method 來調用
protected: 受保護類型
在子類中可以通過self::var 或self::method調用,可以通過parent::method來調用父類中的方法
在實例中不能通過$obj->var 來調用 protected類型的方法或屬性
private: 私有類型
該類型的屬性或方法只能在該類中使用,在該類的實例、子類中、子類的實例中都不能調用私有類型的屬性和方法
再來說說final
1.final不能用來修飾成員屬性
2.final只能修飾類和方法
作用:被修飾的類不能被子類所繼承;被修飾的方法不能被子類的方法覆蓋。
然後來說說static
1.static用來修飾成員屬性和成員方法,但不能用來修飾類
2.用static修飾的成員屬性可以被同一個類的所有對象共享
3.靜態的數據是存在 內存中的 數據段中(初始化靜態段)
4.靜態的數據是在類在第一次載入時,分配到內存中的
5.什麼是類被載入?只要在程序中使用到這個類(有這個類名出現)
6.靜態的成員屬性都要用類名去訪問,不用創建對象,不用對象去訪問;在類里邊可以用self代表本類($this)
7.靜態方法,不能訪問非靜態的成員屬性(但是,在非靜態方法卻能訪問靜態的成員屬性),非靜態的成員屬性,必須用對象訪問,在內部訪問非靜態成員屬性,用$this.
8.如果你確定一個方法中不需使用到非靜態的成員屬性,則可以將這個方法聲明為靜態方法,不需實例化對象,就可以訪問
最後來說說const
1.它只能用來修飾成員屬性
2.在類中聲明常量必須使用const
3.訪問方式和訪問靜態成員屬性一樣(類外使用 類名::成員屬性,類里邊則使用self::成員屬性)
4.常量一定要在聲明的時候就給初始值
⑽ php類中必須聲明public或者是private嗎
不用必須聲明的,默認是public
public:許可權是最大的,可以內部調用,實例調用等。
protected: 受保護類型,用於本類和繼承類調用。
private: 私有類型,只有在本類中使用。