ホームページ >バックエンド開発 >PHPチュートリアル >PHP 5.0 オブジェクト モデルを詳しく調べるためのアクセス メソッド_PHP チュートリアル

PHP 5.0 オブジェクト モデルを詳しく調べるためのアクセス メソッド_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:32:26787ブラウズ

php(現在主流の開発言語として)5のアクセスメソッドでは、クラスメンバーへのアクセスを制限することができます。これは php (現​​在の主流の開発言語として) 5 の新機能ですが、多くのオブジェクト指向言語にはすでに存在しています。アクセス メソッドを使用すると、信頼性の高いオブジェクト指向アプリケーションを開発し、再利用可能なオブジェクト指向クラス ライブラリを構築できます。

C++やJavaと同様に、php(現在主流の開発言語)には、public、private、protectedの3つのアクセスメソッドがあり、指定しない場合は、そのいずれかになります。アクセス方法メソッド、デフォルトのアクセス方法は public です。また、静的メンバーのアクセス方法を指定し、そのアクセス方法を static キーワードの前に置くこともできます (public static など)。パブリック メンバーには制限なくアクセスできます。 class どのコードでもパブリック プロパティの読み取りと書き込みが可能です。スクリプト内のどこからでもパブリック メソッドを呼び出すことができます。 php

(現在の主流の開発言語として)

の最初のいくつかのバージョンでは、すべてのメソッドとプロパティはパブリックであり、オブジェクトが適切に構造化された配列のように感じられました。 プライベート(プライベート)メンバーはクラス内でのみ表示されます。プライベート属性の値を、それが配置されているクラスメソッドの外で変更したり読み取ったりすることはできません。同様に、同じクラス内のメソッドのみがプライベート メソッドを呼び出すことができ、継承されたサブクラスは親クラスのプライベート メンバーにアクセスできません。

クラスおよびクラスのインスタンス内のすべてのメンバーがプライベート メンバーにアクセスできることに注意してください。例 6.8 を見ると、equals メソッドは 2 つのウィジェットを比較します。 == 演算子は同じクラスの 2 つのオブジェクトを比較しますが、この例では、各オブジェクト インスタンスは名前と価格のみを比較します。 equals メソッドが別の Widget インスタンスのプライベート プロパティにアクセスする方法に注目してください。Java と C の両方でこれが可能です。

リスト 6.8 プライベートメンバー

class ウィジェット

{

private $price;

public function __construct($name, $price)
{
$this->name = $name

)

{
return(($this->name == $widget->name)AND ($this->price == $widget->price)
}
}
$w1 = 新しいウィジェット(Cog) , 5.00);
$w2 = 新しいウィジェット(Cog, 5.00);

//TRUE
if($w1->equals($w2)); ( "w1 と w2 は同じです。n");
} //FALSE
if($w1->equals($w3))
{
print("w1 と w3 は同じ n");

//FALSE、== は比較に ID を含みます

if($w1 == $w2) //ID が異なるため等しくありません

{
print("w1 と w2 は同じ n"
}
; ?>

オブジェクト指向プログラミングに慣れていない人は、プライベート メンバーを使用する目的は何なのか疑問に思うかもしれません。この章の冒頭で説明したカプセル化と結合の概念を思い出してください。プライベート メンバーは、データをカプセル化するのに役立ちます。また、データ構造外のコードが内部プロパティに直接アクセスできない場合は、クラス内で非表示にすることができます。




http://www.bkjia.com/PHPjc/508707.html

www.bkjia.com


tru​​e

http://www.bkjia.com/PHPjc/508707.html

技術記事

PHP 5 (現在の主流の開発言語) のアクセス方法では、クラス メンバーへのアクセスを制限できます。これは (現在の主流の開発言語としての) PHP 5 の新機能ですが、多くの点で...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。