PHPオブジェクト指向アクセス制御パブリック、プライベート、プロテクト詳細解説_PHPチュートリアル
この記事では、例を使用して PHP5 のオブジェクト指向アクセス制御の詳細を説明しています。パブリック、プライベート、および保護が必要な友人は参照できます。
PHP5 ではオブジェクト指向メカニズムが強化され、パブリック、プライベート、プロテクトなどの一般的なオブジェクト指向アクセス制御メカニズムが追加されました。文字通りに理解するには:
パブリックは間違いなくパブリックを意味し、クラス自体とその外部サブクラスの両方がこのプロパティまたはメソッドにアクセスできることを意味します。
プライベートは英語でプライベートを意味します。これはクラス自体内でのみアクセスできます。インスタンス化されたオブジェクトハンドルはプロパティやメソッドにアクセスできず、サブクラスもそれらにアクセスできません。Protected 保護されたプロパティまたはメソッド。このプロパティまたはメソッドは、クラス自体またはサブクラスによってのみ内部的にアクセスでき、インスタンス化されたオブジェクト ハンドルにはアクセスできません。
次に、この問題について説明する例を挙げてみましょう。
宝石博物館の管理者シャオ・リーがいて、倉庫内の宝石をルビー、サファイア、エメラルドの 3 つのカテゴリーに分類しているとします。そして属性は分けられており、ルビーは国内の誰もが訪れることができる(公開)、サファイアは管理者シャオ・リーの家族に伝わる(保護)、エメラルドはシャオ・リーが山で見たものです。 (プライベート)。
そして、次のように考えることができます:
公開ラベルが付いたルビーはその国の所有物であり、その国の合法的国民である限り、すべての人が所有しており、閲覧したり写真を撮ったりすることができます。
保護 これは保護されています。シャオ・リーの家族(シャオ・リーの子供または孫)のみが特定の部屋を訪問して写真を撮ることができます。彼らは部屋の外を見ることを許可されていません。
これはプライベートです。シャオ・リーは写真を撮ることはおろか、他の人に知られたくないので、シャオ・リーの部屋にいるシャオ・リーだけが見ることができます。
例
エラー報告(E_ALL);
クラステスト{ パブリック $パブリック プライベート$プライベート 保護された $protected 静的 $インスタンス パブリック関数 __construct(){ $this->public = 'public '; $this->protected = '保護されています 静的関数 Tank(){ if (!isset(self::$instance[get_class()])) { $c = get_class(); self::$instance = 新しい $c }
self::$インスタンスを返す }
パブリック関数 pub_function() { echo "パブリック機能をリクエストします echo $this->private; //プライベート、内部的に呼び出すことができます echo $this->protected; //保護されており、内部的に呼び出すことができます $this->pri_function(); //プライベートメソッド、内部的に呼び出すことができます $this->pro_function(); //保護されたメソッド、内部的に呼び出すことができます } 保護された関数 pro_function(){ echo "保護された機能をリクエストしています "; } プライベート関数pri_function(){ echo "プライベート機能をリクエストしています }
$test = テスト::タンク(); echo $test->public echo $test->private; //致命的なエラー: プライベート プロパティ test::$private にアクセスできません echo $test->protected; //致命的なエラー: 保護されたプロパティ test::$protected にアクセスできません $test->pub_function(); $test->pro_function(); //致命的なエラー: コンテキストから保護されたメソッド test::pro_function() を呼び出します$test->pri_function(); //致命的なエラー: コンテキストからプライベート メソッド test::pri_function() を呼び出します
?>
gt;public = 'public 上の例では、私は見ることができます、 クラステスト{ パブリック $public; プライベート$プライベート; 保護 $protected; 静的$インスタンス;
パブリック関数 __construct(){ $this->public = 'public '; $this->private = 'private '; $this->protected = 'protected '; } protected function tank(){ //私有メソッド不可继承,换成public,protected if (!isset(self::$instance[get_class()])) { $c = get_class(); self::$instance = 新しい $c; } self::$instance を返します。 }
パブリック関数 pub_function() { echo「パブリック機能をリクエストしました 」; echo $this->public; } 保護された関数 pro_function(){ echo「保護された機能をリクエストしました 」; echo $this->保護; } プライベート 関数 pri_function(){ echo「プライベート機能をリクエストしました 」; echo $this->プライベート; } }
クラス test1 はテストを拡張します{
パブリック関数 __construct(){ 親::タンク(); 親::__construct(); } 公共機能タンク(){ echo $this->public; echo $this->プライベート; //注意: 未定義のプロパティ: test1::$private echo $this->保護; $this->pub_function(); $this->pro_function(); $this->pri_function(); //致命的なエラー: コンテキスト「test1」からプライベート メソッド test::pri_function() を呼び出します }
パブリック関数pro_extends_function(){ echo「あなたはextends_protected機能をリクエストしています 」; } パブリック関数 pri_extends_function(){ echo「extends_private 関数をリクエストしました 」; } }
エラー報告(E_ALL); $test = 新しい test1();$test ->tank(); //サブクラスと親クラスには同じ名前のプロパティとメソッドがあります。サブクラスをインスタンス化すると、サブクラスのプロパティとメソッドが親クラスのプロパティとメソッドを上書きします。
?>
|
http://www.bkjia.com/PHPjc/629261.html

ホット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)

ホットトピック

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています
