搜尋

關鍵字是在程式中用作保留的單詞,並賦予它們特殊的含義。它們可以是命令或參數。與所有其他程式語言一樣,PHP 也有一組稱為關鍵字的特殊單字,它們不能用作其他目的的變數名稱。它們也被稱為保留名稱。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

私人關鍵字,顧名思義,是只能從定義它的類別中存取的關鍵字。所有關鍵字預設都屬於公用類別,除非它們被指定為私人或受保護。私有關鍵字透過為整個程式碼中的關鍵字提供最少的可見性來幫助實現安全目的。當只有一個類別呼叫此關鍵字時,折射也更容易。

除了私人關鍵字之外,還可以有私有方法。在物件導向程式設計中,方法是與任何類別關聯的過程集。對於私有方法,只能在屬於同一類別或其模組的方法中呼叫它們。

還有可以宣告的私有常數和屬性。在這些情況下,可見性僅限於它們的類別之間,而不是實例之間。如果兩個物件屬於相同類型,則一個物件可以呼叫另一個物件的私有方法。

文法:

任何變數、屬性或方法都可以透過在其前面加上「private」關鍵字來宣告為私有。

class MyClass()
{
private variable_name;
private Method_name();
private $priv = 'Private property';
}

私有財產範例

讓我們透過以下範例來了解 PHP 中私有財產的工作原理:

代碼:

<?php /**
* Definition of PHPExample
*/
class PHPExample
{
public $public = 'Public property';
protected $protected = 'Protected property';
private $private = 'Private property';
function displayValue()
{
echo $this->public;
echo "\n";
echo $this->protected;
echo "\n";
echo $this->private;
echo "\n";
}
}
$val = new PHPExample();
echo $val->public; // Public will work without any error
echo "\n";
echo $val->protected; // Uncaught Error: Cannot access protected property PHPExample::$protected in /workspace/Main.php:21
echo $val->private; // Uncaught Error: Cannot access private property PHPExample::$private in /workspace/Main.php:22
$val->displayValue(); // Displays all 3 Public, Protected and Private properties
/**
* Definition of PHPExample2
*/
class PHPExample2 extends PHPExample
{
// It supports redeclaration of public and protected properties and not private
public $public = 'Public2 property';
protected $protected = 'Protected2 property';
function displayValue()
{
echo $this->public;
echo "\n";
echo $this->protected;
echo "\n";
echo $this->private; //Undefined property: PHPExample2::$private in /workspace/Main.php on line 39
}
}
$val2 = new PHPExample2();
echo $val2->public; // Public will work without error
echo "\n";
echo $val2->protected; // Fatal Error
echo $val2->private; // Undefined property: PHPExample2::$private in /workspace/Main.php on line 46
$val2->displayValue(); // Shows Public2, Protected2, Undefined
?>

輸出 1:

PHP 中的私有

輸出 2:在第 23 行註解後。

PHP 中的私有

輸出 3:在第 24 行註解後。

PHP 中的私有

輸出 4:對第 46、47 和 40 行進行評論後。

PHP 中的私有

對上面程式碼的解釋:當你完全運行這段程式碼時,你一定會在一些行號處遇到致命錯誤,例如第25,26,45,52,53行。我們首先在主類別 PHPExample 中聲明所有 3 個屬性 public、private 和 protected,以顯示它們各自的單字。內聯 25,我們嘗試存取 PHPExample 類別的所有 3 個屬性。由於私有和受保護的範例無法在其類別之外訪問,因此我們在輸出中收到如圖所示的致命錯誤,並且僅顯示公共屬性。

在程式碼的後半部分,我們聲明了另一個類別 PHPExample2,我們在其中重新聲明受保護和公共屬性的顯示值。私人不允許這樣做,然後我們執行與上半場相同的動作。由於我們試圖呼叫此處未聲明的私有屬性,因此我們收到未定義屬性錯誤。

私有方法和關鍵字範例

讓我們透過以下範例來了解 PHP 中私有方法和關鍵字的工作原理:

代碼:

<?php class NameExample {
// Declaring first name as private value
private $first_name;
// Declaring last name as private value
private $last_name;
public $public = 'Displaying from public method';
private $private ='Displaying from private method';
// private function for setting the value for first_name
private function fName($first_name) {
$this->$first_name = $first_name;
echo $this -> private;
}
// public function for setting the value for last_name
public function lName($last_name) {
$this->$last_name = $last_name;
echo $this -> public;
}
// public function to display full name value
public function dispName() {
echo "My name is: " . $this->$first_name . " " . $this->$last_name;
}
}
// Creating a new object named $arun of the class
$arun = new NameExample();
// trying to access private class variables
$arun->$first_name = "Arun"; // invalid
$arun->$last_name = "Sharma"; // invalid
// calling the public function to set $first_name and $last_name
$john->fName("John");
$arun->lName("Wick");
// $arun-> dispName();
?>

輸出 1:

PHP 中的私有

輸出 2: 註第 32、33 和 36 行後。

PHP 中的私有

上述程式碼說明:在上面的範例中,$first_name 和 $last_name 被宣告為類別 NameExample 的私有變量,因此不能使用類別物件直接呼叫它們。因此,當我們第一次嘗試執行程式碼時,我們會收到錯誤“未定義的變數:第 32 行 /workspace/NameExample.php 中的first_name”,第 33 行也是如此。當我們評論這兩行並再次運行程式碼時我們收到錯誤「未捕獲錯誤:在 /workspace/NameExample.php:36 中的 null 上呼叫成員函數 name()」。

這是因為我們已將函數 fName 聲明為私有,並且它正在嘗試存取該函數。當第 36 行也被註解並從方法名稱顯示時,程式碼運行順利,因為它是公共方法。

在 PHP 中使用 Private 的優點

以下是在 PHP 中使用 Private 的優點:

  1. 私有變數仍然可以透過使用「getters」和「setters」來訪問,這使編碼人員可以更好地控制存取資料。
  2. 私有反過來意味著封裝,它將變數從一個類別分離到另一個類,從而保護對類別內部所做的更改。
  3. 私有變數的行為被限制在特定的類別內,也避免了混亂。
  4. 私有變數可以輕鬆重新實現,而不會有在任何地方破壞程式碼的風險。

PHP 私人規則與規定

以下是 PHP 中 Private 需要遵循的規則和規定:

  1. 對於任何變數成員或方法,必須始終宣告其範圍,無論它屬於公有、受保護或私有。
  2. 依照方法的順序,應遵循以下順序:public,>受保護>私人
  3. 私有變數無法從透過從聲明它們的主類別擴展它們而聲明的子類別中存取。但是,如果在子類別中再次聲明相同的私有屬性,則可以存取它,但不建議這樣做。
  4. 因此,在類別中宣告的私有方法只能在該類別內部呼叫。

結論

私有是一種限制類別的變數、方法或屬性的可訪問性的方法。它們只能在聲明它們的類別中訪問,而不能從其擴展的任何子類別中訪問。父類別中的任何受保護屬性都可以被子類別覆蓋並公開,但不能設為私有。

以上是PHP 中的私有的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中