色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php protected public

劉雅靜1年前6瀏覽0評論
PHP是一種廣泛使用的編程語言,而類(class)是PHP中的重要概念之一。在類中,通過修飾符(即訪問控制符)來限定類的屬性和方法的訪問范圍,其中包括protected和public。本文主要介紹這兩個關鍵詞的用法與區別。

protected和public相同點就不必多言了,它們都是類成員的訪問控制符,主要的作用就是限制屬性和方法的訪問范圍。我們來看一個例子:

class A {
protected $x = 100;
public function getX() {
return $this->x; 
}
}
class B extends A {
function showX() {
echo $this->x;   
}
}
$a = new A;
$b = new B;
echo $b->getX();
$b->showX();
我們定義了一個A類和一個B類,其中A類中的屬性x被聲明為protected,在getX方法中可以訪問,但在類外和B類中不能直接使用。而在B類中,我們使用了protected屬性x,這毫無問題。同樣地,getX方法在類外和B類中可以使用。然而,在類外部我們無法訪問protected屬性x。

相反地,public關鍵詞用于聲明公共屬性和方法,在類內外都可直接使用。來看下面的代碼:

class Car {
public $speed = 0;
public function move() {
$this->speed++;
}
}
$car = new Car();
$car->move();
echo $car->speed;
我們定義了一個Car類,其中有一個public屬性speed和一個public方法move,這意味著我們可以在類外直接訪問和修改它們。在這個例子里,我們定義了一個Car對象$car,當執行$car->move()時,$car的speed增加1,最后打印出速度。這就是public關鍵詞的最基本使用方法,使得屬性和方法在類內外都是可見的。(注:如果不使用public關鍵詞,則默認為public)

簡單介紹了protected和public的基本使用和區別,現在我們來看一下protected的高級用法。在前面的例子中,我們已經使用了extends關鍵詞,這意味著B類是A類的子類。這里涉及到一個重要的OOP概念——繼承(inheritance)。我們可以將類比成人,而子類就像是兒女,她們可以得到父母的一些基因,自己則可以加以改變和發展。在PHP中,子類繼承了父類所有的protected屬性和方法,可以更改它們的訪問和修改級別。以下是另一個例子:

class Shape {
	protected $x, $y;
	public function __construct($x, $y) {
$this->x = $x;
$this->y = $y;
	}
}
class Square extends Shape {
	public function __construct($sideLength) {
parent::__construct($sideLength, $sideLength);
	}
	public function area() {
return $this->x * $this->y;
	}
}
$square = new Square(5);
echo $square->area();
在這個例子中,我們定義了兩個類——Shape和Square,其中Shape類聲明了兩個protected屬性$x和$y,而Square類繼承了Shape類并重寫了構造函數,使得$x和$y的值相等。Square還定義了一個求面積的方法area,并使用$x和$y計算面積。在最后,我們新建了一個Square對象并使用area方法計算了它的面積。這就是protected關鍵詞的高級用法,使得父類的屬性和方法被子類所繼承和改變。

本文介紹了PHP中兩個重要的訪問控制關鍵詞protected和public的使用和區別。protected關鍵詞用于限制訪問范圍,只能在類內及其子類中訪問,例如繼承。public關鍵詞用于聲明公共屬性和方法,在類內外都可直接使用。在實際應用中,我們應該根據需求來確定屬性和方法的訪問權限,并合理地使用protected和public關鍵詞。