ホームページ >バックエンド開発 >PHPチュートリアル >PHP のプライベート
キーワードは、プログラム内で予備として使用され、特別な意味が割り当てられた単語です。コマンドまたはパラメータにすることができます。他のプログラミング言語と同様に、PHP にもキーワードと呼ばれる特別な単語のセットがあり、他の目的で変数名として使用することはできません。これらは予約名とも呼ばれます。
広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
プライベート キーワードは、その名前が示すように、それが定義されているクラス内からのみアクセスできるキーワードです。すべてのキーワードは、プライベートまたは保護として指定されていない限り、デフォルトでパブリック カテゴリに含まれます。プライベート キーワードは、コード全体でキーワードの可視性を最小限に抑えることで、セキュリティ目的に役立ちます。このキーワードを呼び出すクラスが 1 つだけの場合も、リフラクタリングが簡単になります。
プライベート キーワードとは別に、プライベート メソッドも存在する場合があります。オブジェクト指向プログラミングでは、メソッドは任意のクラスに関連付けられたプロシージャのセットです。プライベート メソッドの場合、同じクラスまたはそのモジュールに属するメソッド内でのみ呼び出すことができます。
宣言できるプライベート定数とプロパティもあります。このような場合の可視性は、インスタンス間ではなくクラス間でのみ制限されます。 2 つのオブジェクトが同じ型の場合、一方のオブジェクトは別のオブジェクトのプライベート メソッドを呼び出すことができます。
構文:
変数、プロパティ、またはメソッドは、先頭に「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:
出力 2: 23 行目のコメント後。
出力 3: 24 行目のコメント後。
出力 4: 行 46、47、および 40 のコメント後。
上記のコードの説明: このコード全体を実行すると、行: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:
出力 2: 行 32、33、および 36 をコメント化した後。
上記コードの説明: 上記の例では、$first_name と $last_name はクラス NameExample のプライベート変数として宣言されているため、クラス オブジェクトを使用して直接呼び出すことはできません。したがって、最初にコードを実行しようとすると、「未定義の変数: /workspace/NameExample.php の 32 行目の first_name」というエラーが発生し、33 行目でも同様です。これらの 2 行にコメントを付けてコードを再度実行すると、 「Uncaught Error: Call to a member function name() on null in /workspace/NameExample.php:36」というエラーが発生します。
これは、関数 fName をプライベートとして宣言し、同じものにアクセスしようとしているためです。 36行目もコメント化してパブリックメソッドなのでメソッド名から表示するとコードはスムーズに動作します。
PHP で Private を使用する利点は次のとおりです:
以下は、PHP のプライベートに関して従うべきルールと規制です:
プライベートは、クラスの変数、メソッド、またはプロパティへのアクセスを制限する方法です。これらは、宣言されたクラス内でのみアクセスでき、そこから拡張されたサブクラスからはアクセスできません。親クラスの保護されたプロパティはサブクラスでオーバーライドしてパブリックにすることができますが、プライベートにすることはできません。
以上がPHP のプライベートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。