您好,登錄后才能下訂單哦!
這篇文章主要介紹了php能不能私有靜態方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
php可以私有靜態方法。靜態私有方法提供了一種從類外部隱藏靜態代碼的方法;如果幾種不同的方法(靜態或非靜態)需要使用它,即代碼重用,這可能是有用的。
本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦
我明白靜態意味著一個對象不需要被實例化為該屬性/方法可用。我也明白,這適用于私有財產和方法以及公共方法。我想知道的是什么是靜態私有功能可以讓你獲益。例如:
class Beer { static private $beertype = "IPA"; private function getBeerType() { return self::$beertype; } static public function BeerInfo() { return self::getBeerType(); } } print Beer::BeerInfo() . "\n";
只要從靜態公共方法中調用getBeerType(),私有方法就會執行得很好,沒有實例化的對象。如果靜態公共方法可以訪問所有私有方法(靜態和非靜態),那么聲明方法static private的好處是什么?
在嚴格的錯誤報告打開的情況下,我確實得到了我應該使getBeerType()靜態的警告,盡管它仍然允許我運行代碼。我做了一些研究,似乎其他語言(Java)將強制您在靜態公共方法調用時將私有方法聲明為靜態方法。看起來像PHP讓你擺脫這一點。有沒有辦法強制它拋出錯誤而不執行?
靜態私有方法提供了一種從類外部隱藏靜態代碼的方法。如果幾種不同的方法(靜態或非靜態)需要使用它,即代碼重用,這可能是有用的。
靜態方法和靜態變量(有時稱為類方法和類變量)是將代碼和數據放入一種命名空間的一種方式。您也可以將類變量視為附加到類本身的變量,其中(根據定義)只有一個,而不是該類的實例,其中可能有零個,一個或多個。類方法和類變量可用于處理不僅在所有實例中保持相同但與實際相同的屬性。
類變量的一個示例是ORM實體對象中的數據庫處理程序。所有實例都是自己的對象,但是他們都需要訪問相同的數據庫處理程序來加載和保存自身。
私人與公眾是一個完全獨立的品質,我懷疑你在絆倒什么。私有方法不能被調用,私有變量不能從類之外的代碼訪問。私有方法通常用于在對象外部不能訪問的對象上實現“內部”邏輯。這種限制可以通過實例方法和類方法來實現。
私有類方法的示例可以是工廠方法。可能有三個工廠調用來創建可能在提供的參數方面不同的對象。但大部分操作是一樣的。所以它進入非私有工廠方法調用的私有靜態方法。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“php能不能私有靜態方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。