セクション 8 - アクセス方法_PHP チュートリアル
/*
+---------------------------------------------- -- ----------------------------------+
| = この記事は Haohappy<
| = 不要なトラブルを避けるため、転載はご遠慮ください
| PHP 愛好家は一緒に進歩しましょう
| = PHP5 Research Center: http://blog.csdn.net/haohappy2004
+---------------------- -------------------------------------------------- -- ---+
*/
セクション 8 -- アクセスメソッド
PHP5 のアクセスメソッドでは、クラスメンバーへのアクセスを制限できます。これは PHP5 の新機能ですが、多くのオブジェクト指向言語にすでに存在しています。アクセス メソッドを理解することによってのみ、信頼性の高いオブジェクト指向アプリケーションを開発し、再利用可能なオブジェクト指向クラス ライブラリを構築できます。
C++ や Java と同様、PHP にはクラスのアクセス メソッドとして、public、private、および protected の 3 つのアクセス メソッドがあります。 member は、アクセス メソッドを指定しない場合、デフォルトのアクセス メソッドは public です。また、静的メンバーのアクセス メソッドを指定し、そのアクセス メソッドを static キーワードの前に置くこともできます (public static など)。
パブリック メンバーには制限なくアクセスできます。クラス外のコードは、スクリプト内のどこからでもパブリック メソッドを呼び出すことができます。これにより、オブジェクトはすべてパブリックであるように感じられます。適切に構造化された配列と同様に、プライベート (プライベート) メンバーはクラス内でのみ表示されます。プライベート プロパティの値を、それが配置されているクラス メソッドの外で変更したり読み取ったりすることはできません。同様に、同じクラス内のメソッドのみを呼び出すことができます。プライベート メソッドは、親クラスのプライベート メンバーにアクセスできません。
例 6.8、equals メソッドは 2 つのウィジェットを比較します。同じクラスのオブジェクトですが、この例では各オブジェクト インスタンスが一意の ID を持っています。equals メソッドが別のオブジェクトにどのようにアクセスするかに注意してください。Java と C の両方でこのようなことが可能です。
リスト 6.8 プライベートメンバー
コードをコピーします
{
private $name;
プライベート $価格;
プライベート $id;
public function __construct($name, $price)
{
$this->name = $name;
$this->price = floatval($price);
$this->id = uniqid();
}
//2つのウィジェットが同じであるかどうかを確認します 检查两个ウィジェットが同じかどうかを確認します
public equals($widget)
{
return(($this->name == $widget->name)AND
( $this->価格 == $widget->価格));
}
}
$w1 = 新しい ウィジェット('Cog', 5.00);
$w2 = 新しい ウィジェット('Cog', 5.00);
$w3 = 新しい ウィジェット('ギア', 7.00);
//TRUE
if($w1->equals($w2))
{
print("w1 と w2 は 同じ
n");
}
//FALSE
if($w1->equals($w3))
{
print("w1 と w3 は 同じ
n");
}
//FALSE, == 比較に ID が含まれます
if($w1 == $w2) //不等, ID が異なるため
{
print("w1 と w2 は 同じです
;n");
}
?>
保護された (保護された) メンバーは、同じクラス内のすべてのメソッドと継承されたクラス内のすべてのメソッドからアクセスできます。パブリック属性は、サブクラスが依存することを許可するため、カプセル化の精神に違反します。保護されたメソッドは作成されません。この問題については、保護されたメソッドを使用するサブクラスは、その親クラスの構造を知る必要があります。例 6.9 は、Thing の Widget サブクラスを含めて、getName という名前の保護されたメソッドを含むようになりました。ウィジェットが保護されたメソッドを呼び出そうとすると、エラーが発生します。$w1->getName() はエラーを生成します。ただし、Thing のサブクラスでは、getName メソッドはこの保護されたメソッドを呼び出すことができます。 Widget::getName メソッドは保護されています。実際の状況では、保護されたメソッドを使用するには、オブジェクトの内部構造を理解する必要があります。
コードをコピーします
{
private $name;
プライベート $価格;
プライベート $id;
public function __construct($name, $price)
{
$this->name = $name;
$this->price = floatval($price);
$this->id = uniqid();
}
//2つのウィジェットが同じかどうかを確認します
public equals($widget)
{
return(($this->name == $ウィジェット->名前)AND
($this->価格== $ウィジェット->価格));
}
protected function getName()
{
return($this->name);
}
}
class Thing extends Widget
{
private $color;
public function setColor($color)
{
$this->color = $color;
}
public function getColor()
{
return($this->color);
}
public function getName()
{
return(parent::getName());
}
}
$w1 = 新しい ウィジェット('Cog', 5.00);
$w2 = 新しい Thing('Cog', 5.00);
$w2->setColor('Yellow');
//TRUE (まだ!) 结果仍然真
if($w1->equals($w2))
{
print("w1 and w2 are the same
n");
}
//print Cog 出 Cog
print($w2->getName());
?>
サブクラスは、親クラスのメソッドをオーバーライドすることでメソッドへのアクセス方法を変更できます。ただし、パブリック クラスのメンバーをオーバーライドする場合、そのメンバーはサブクラス内でパブリックのままでなければなりません。 protected または public になるプライベート メンバーは、現在のクラスでのみ表示されます。親クラスのプライベート メンバーと同じ名前のメンバーを宣言すると、単に現在のクラスに別のメンバーが作成されます。したがって、技術的には、プライベートをオーバーライドすることはできません。
Final キーワードは、メンバー メソッドへのアクセスを制限する別の方法です。 サブクラスは、親クラスで Final としてマークされたメソッドをオーバーライドできません。
Final キーワードは、属性には使用できません。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









iOS17 では、Apple はアプリが写真に表示できるものをより詳細に制御できるようになりました。アプリごとにアプリへのアクセスを管理する方法については、この記事を読んでください。 iOS では、Apple のアプリ内フォト ピッカーを使用して、特定の写真をアプリと共有できますが、写真ライブラリの残りの部分は非公開のままです。アプリは写真ライブラリ全体へのアクセスを要求する必要があり、アプリに次のアクセスを許可するかどうかを選択できます: 制限付きアクセス – アプリは選択できる画像のみを表示できます。これは、アプリ内でいつでも行うか、[設定] に移動することで実行できます。 > ;プライバシーとセキュリティ>写真をクリックして、選択した画像を表示します。フルアクセス - アプリで写真を表示できます

JsonNode は、JSON を JsonNode インスタンスに読み取り、JsonNode を JSON に書き込むことができる Jackson の JSON ツリー モデルです。 Jackson を使用して、ObjectMapper インスタンスを作成し、readValue() メソッドを呼び出すことで、JSON を JsonNode に読み取ることができます。 JsonNode クラスの get() メソッドを使用して、フィールド、配列、またはネストされたオブジェクトにアクセスできます。 asText() メソッドを使用して有効な文字列表現を返し、JsonNode クラスの asInt() メソッドを使用してノードの値を Javaint に変換できます。以下の例では、Json にアクセスできます。

Mutagen と Python の eyeD3 モジュールを使用して、オーディオ ファイルのメタデータにアクセスできます。ビデオのメタデータには、ムービーと Python の OpenCV ライブラリを使用できます。メタデータは、オーディオ データやビデオ データなど、他のデータに関する情報を提供するデータです。オーディオ ファイルとビデオ ファイルのメタデータには、ファイル形式、ファイル解像度、ファイル サイズ、再生時間、ビットレートなどが含まれます。このメタデータにアクセスすることで、メディアをより効率的に管理し、メタデータを分析して有用な情報を取得できます。この記事では、オーディオ ファイルとビデオ ファイルのメタデータにアクセスするために Python が提供するライブラリまたはモジュールのいくつかを見ていきます。オーディオ メタデータへのアクセス オーディオ ファイル メタデータにアクセスするための一部のライブラリは、突然変異生成を使用しています。

Tomcat がデプロイ後に war パッケージに正常にアクセスできない問題を解決するには、特定のコード サンプルが必要です。広く使用されている Java Web サーバーとして、Tomcat を使用すると、開発者は独自に開発した Web アプリケーションをデプロイ用の war ファイルにパッケージ化できます。ただし、構成が正しくないことやその他の理由により、war パッケージをデプロイした後に正常にアクセスできないという問題が発生する場合があります。この記事では、このジレンマに対処する具体的なコード例をいくつか紹介します。 1. Tomcat サービスを確認する

PHP 開発における外部リソースへのアクセスと呼び出しの問題を解決するには、特定のコード サンプルが必要です。PHP 開発では、API インターフェイス、サードパーティ ライブラリ、その他のサーバー リソースなどの外部リソースにアクセスして呼び出す必要がある状況によく遭遇します。 。これらの外部リソースを扱うときは、パフォーマンスと信頼性を確保しながら、安全にアクセスして呼び出す方法を考慮する必要があります。この記事では、いくつかの一般的な解決策について説明し、対応するコード例を示します。 1.curl ライブラリを使用して外部リソースを呼び出す Curl は、非常に強力なオープン ソース ライブラリです。

win7でファイルを変更するときにアクセスが拒否される問題を解決するにはどうすればよいですか?一部のシステム ファイルを変更する場合、操作を実行する権限がないことを示すメッセージが頻繁に表示されます。フォルダーのアクセス許可をオフにするか、管理者権限を取得できます。このようなファイルを変更する必要があるユーザーのために、次の具体的なチュートリアルを見てみましょう。 win7 でファイルを変更するときにアクセスが拒否される問題の解決策: 1. まず、対応するフォルダーを選択し、上のツールをクリックして、フォルダー オプションを選択します。 2. 「表示」タブに入ります。 3. [簡易ファイル共有を使用する] チェックボックスをオフにして確認します。 4. 次に、対応するフォルダーを右クリックし、「プロパティ」をクリックします。 5. 「セキュリティ」タブに入ります。 6. アイコンの位置を選択し、「詳細設定」をクリックします。 7

フォルダーの共有は、家庭やビジネスのネットワーク環境において非常に便利な機能で、他のユーザーと簡単にフォルダーを共有できるため、ファイルの転送や共有が容易になります。 Win10 Home Edition 共有フォルダーにアクセスできない 解決策: 解決策 1: ネットワーク接続とユーザー権限を確認する Win10 共有フォルダーを使用しようとすると、まずネットワーク接続とユーザー権限が正常かどうかを確認する必要があります。ネットワーク接続に問題がある場合、またはユーザーに共有フォルダーへのアクセス権限がない場合、アクセスできなくなる可能性があります。 1. まず、ネットワーク接続がスムーズで、コンピュータと共有フォルダが配置されているコンピュータが同じ LAN 上にあり、正常に通信できることを確認してください。 2. 次に、ユーザー権限をチェックして、現在のユーザーにファイルを共有する権限があることを確認します。

最新のプログラミング言語として、Go 言語は開発において重要な役割を果たします。 Go 言語には、時間処理をより便利にするための組み込みの時間関数と構造がいくつか用意されています。この記事では、Go 言語でよく使われる時間処理メソッドをいくつか紹介します。 time.Now() time.Now() 関数を使用して現在時刻を取得できます: now:=time.Now()fmt.Println(now) 出力: 2019-06-131
