PHP リファレンスは、1 つの変数の内容に別の名前でアクセスできるシンボル テーブルのエイリアスです。明示的に定義された参照変数の前にアンパサンド (&) 記号を付ける必要があります。 PHP 参照の機能は、Windows のショートカットのアナロジーを使用して説明できます。 PHP 参照は、PHP プログラミングでさまざまな方法で定義できます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
PHP 参照を作成するために主に使用される方法については、以下で説明します。
メソッド内で、参照される変数の前にキーワード「global」を使用して参照を作成できます。参照をグローバル変数として宣言すると、その変数が $GLOBAL 配列に追加され、ユーザーは関数のスコープ内でグローバル変数にアクセスできるようになります。基本的に、PHP 参照をグローバル変数として宣言して定義するには、次の 2 つの方法があります。
function Function_name() { global $globalVar; } OR function Function_name() { $globalVar =& $GLOBALS["globalVar"]; }
例
以下のコード スニペットは、ローカル スコープとグローバル スコープに関して、同じ変数の値の違いを示すように設計されています。
<?php function functionname() { $inputvar = "within function scope"; echo '$inputvar in global scope: ' . $GLOBALS["inputvar"] . "\n"; echo '$inputvar in current scope: ' . $inputvar . "\n"; } $inputvar = "Outside function scope"; $othervar= $GLOBALS["inputvar"]; //Creating inputvar in GLOBAL array functionname(); echo '$othervar : ' . $othervar . "\n"; ?>
出力
Othervar は、GLOBAL 配列からの inputvar の参照セットです。関数のローカル スコープで定義された inputvar 変数にはバインドされません。
‘$this’ 変数は関数のオブジェクトへのデフォルト参照であり、そのうち $this 変数が参照されます。
例
以下のコードは、選択したクラス オブジェクトから任意のクラス プロパティの値にアクセスするための $this 変数の使用法を示しています。
<?php class Thisclass { var $clsproperty = 300; function classmethod() { $this->clsproperty = 500; // $this is a reference to the object } } $clsObject = new Thisclass(); $clsObject->classmethod(); echo "The displayed value is: ". $clsObject->clsproperty; //display the value updated using $this property ?>
出力
clsproperty の値は、$this 変数を使用して設定された値に基づいて表示されます。
PHP プログラミングにおいて、クラス オブジェクトに対して実行される割り当て、戻り、渡しなどの操作。操作は常に、オブジェクトのコピーではなくオブジェクトを参照して実行されます。
PHP オブジェクト参照を作成するための標準構文は次のとおりです。
class ClassName { //Body of the class } $classObj1 = new ClassName (); $classObj2= $classObj1;
ここで、classObj2 オブジェクトは、classObj1 に含まれる同じコンテンツを参照しています。
例
以下のコード スニペットは、実際のオブジェクトの参照オブジェクトを作成し、そのプロパティにアクセスするように設計されています。
<?php class Costume { // Declaring the class properties public $name; public $color; // Declaring the class methods function set_name($name) { $this->name = $name; } function get_name() { return $this->name; } function set_color($color) { $this->color = $color; } function get_color() { return $this->color; } } //Creating the object $constume1 = new Costume(); $constume1->set_name('Superman'); $constume1->set_color('Blue and Red'); //Creating the object reference $constume2=$constume1; echo "Costume1 Name: " . $constume1->get_name(); echo "\n"; echo "Costume1 Color: " . $constume1->get_color(); echo "\n"; echo "\n"; echo "Costume2 Name: " . $constume2->get_name(); echo "\n"; echo "Costume2 Color: " . $constume2->get_color(); ?>
出力
参照オブジェクトのコスチューム 2 は、実際のオブジェクトのコスチューム 1 のプロパティ名と色に含まれる値と同じ値を参照します。
PHP プログラミングでは、PHP 参照を使用してさまざまな操作が実行されます。主要な操作の一部については、以下のセッションで説明します:
関数がスコープ外で定義された変数を変更できるようにするには、値を参照によって関数に渡す必要があります。
例
以下のコード スニペットは、変数への参照を使用して、呼び出された関数のスコープ外で定義された変数の値を変更します。
<?php function Afunction(&$input) //passing the input argument by reference { $input*=10; } $outVar=5; echo "Before the function is called: ".$outVar; echo "\n"; Afunction($outVar); echo "After the function is called: ".$outVar; ?>
出力
変数 outvar の値は、関数 AFunction() によって変更されます。
この操作により、呼び出し関数は参照がバインドされる変数を見つけることができます。技術的な要件がある場合にのみ使用することをお勧めします。それ以外の場合、プログラムのパフォーマンスは向上しません。
例
以下のコード スニペットは、関数の親関数からの戻り値を、定義されたクラスの親クラスへの参照として渡すように設計されています。
<?php class parentclass { public $parentvar = "I am set at parent class"; public function &parentfunction() { return $this->parentvar; } } $parentobj = new parentclass; $newvar = &$parentobj->parentfunction(); echo $newvar; echo "\n"; $parentobj->parentvar= "I am set outside of the class"; echo $newvar; ?>
出力
ユーザーはメソッド unset() を使用して、変数と参照の間のバインディングを解除できます。
例
以下のコード スニペットは、メソッド unset() を使用して、参照変数 firstinput を Secondinput からバインド解除する方法を示しています。
<?php $firstinput = "I am first input"; $secondinput =& $firstinput; echo "First input: ". $firstinput; echo"\n"; echo "Second input: " . $secondinput; unset($firstinput); echo"\n"; echo"\n"; echo "After unsetting the reference: "; echo"\n"; $firstinput = "I am set to second input"; echo"\n"; echo "First input: ". $firstinput; echo"\n"; echo "Second input: " . $secondinput; ?>
出力
PHP 参照は、PHP スクリプトに組み込まれている重要な機能です。 PHP 参照は、重複要素を作成するためにメモリを占有する「C」のように記述できるポインターではありません。むしろ、PHP 参照は、実際の変数からコンテンツを参照するための別のエイリアスにすぎません。 PHP のオブジェクトにオブジェクトのコピーが必要な場合は、キーワード「clone」を使用してコピーできます。
以上がPHP リファレンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。