PHP リファレンス

WBOY
WBOYオリジナル
2024-08-29 12:49:001116ブラウズ

PHP リファレンスは、1 つの変数の内容に別の名前でアクセスできるシンボル テーブルのエイリアスです。明示的に定義された参照変数の前にアンパサンド (&) 記号を付ける必要があります。 PHP 参照の機能は、Windows のショートカットのアナロジーを使用して説明できます。 PHP 参照は、PHP プログラミングでさまざまな方法で定義できます。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

PHP 参照を作成する方法

PHP 参照を作成するために主に使用される方法については、以下で説明します。

1. 「グローバル」というキーワードを使用する

メソッド内で、参照される変数の前にキーワード「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 変数にはバインドされません。

PHP リファレンス

2. $this 変数の使用

‘$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 リファレンス

3.オブジェクトを渡す

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 プログラミングでは、PHP 参照を使用してさまざまな操作が実行されます。主要な操作の一部については、以下のセッションで説明します:

1.参照渡し

関数がスコープ外で定義された変数を変更できるようにするには、値を参照によって関数に渡す必要があります。

以下のコード スニペットは、変数への参照を使用して、呼び出された関数のスコープ外で定義された変数の値を変更します。

<?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 リファレンス

2.参照を返す

この操作により、呼び出し関数は参照がバインドされる変数を見つけることができます。技術的な要件がある場合にのみ使用することをお勧めします。それ以外の場合、プログラムのパフォーマンスは向上しません。

以下のコード スニペットは、関数の親関数からの戻り値を、定義されたクラスの親クラスへの参照として渡すように設計されています。

<?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;
?>

出力

PHP リファレンス

3. PHP リファレンスの設定を解除

ユーザーはメソッド 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 スクリプトに組み込まれている重要な機能です。 PHP 参照は、重複要素を作成するためにメモリを占有する「C」のように記述できるポインターではありません。むしろ、PHP 参照は、実際の変数からコンテンツを参照するための別のエイリアスにすぎません。 PHP のオブジェクトにオブジェクトのコピーが必要な場合は、キーワード「clone」を使用してコピーできます。

以上がPHP リファレンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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