ホームページ > バックエンド開発 > PHPチュートリアル > phpで関数の前にアンパサンドを追加する関数の分解、php function_PHPチュートリアル

phpで関数の前にアンパサンドを追加する関数の分解、php function_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:23:17
オリジナル
859 人が閲覧しました

phpの関数の前にアンパサンドを追加する関数、php関数の分解

PHP 変数の前のアンパサンド記号が何を意味するかは言うまでもありません。これは、2 つの変数が同時に同じアドレスを指すことを意味します。 php関数?以下に 2 つのデモ コードを最初に示し、次に説明を示します。

リーリー

2つ目の機能を説明しましょう。
このように、 $a=test(); は実際には関数参照の戻り値を取得しません。これは通常の関数呼び出しと何ら変わりません。

理由は:これはPHPの規定です

PHP では、$a=&test(); を通じて取得されるものは関数の参照戻りであると規定されています。
参照リターンとは何かについては(PHPマニュアルには、参照をバインドする必要がある変数を見つけるために関数を使用したい場合に参照リターンが使用されます。)

上記の例を使用して説明します

$a=test() を使用して関数を呼び出すと、関数の値が $a に代入されるだけであり、$a への変更は関数内の $b には影響しません。

$a=&test() を通じて関数を呼び出すと、その関数は、戻り値 $b の変数 $b のメモリ アドレスを $a 変数のメモリ アドレスと比較することです
同じ場所を指します。つまり、効果はこれと同等です ($a=&b;)。したがって、$a の値を変更すると、$b の値も変更されるため、次のように実行します。 $a=&test(); $a=5; その後、$b の値は 5 になります。


PHP関数名の前に@を追加するとはどういう意味ですか

@ 演算子は式に対してのみ有効です。初心者向けの簡単なルールは、値をどこかから取得できる場合は、その値の前に @ 演算子を付けることです。たとえば、変数、関数、include() 呼び出し、定数などの前に置くことができます。関数またはクラスの定義の前に配置したり、if や foreach などの条件構造で使用したりすることはできません。
現在の「@」エラー制御演算子プレフィックスは、スクリプトの終了を引き起こす重大なエラーのエラー報告も無効にします。これは、存在しない、または間違ったタイプの関数呼び出しの前に「@」を使用してエラー メッセージを抑制すると、スクリプトはそこで何の理由も示されずに終了することを意味します。




PHPで関数定義の前にアンパサンドを追加する意味は何ですか?

関数参照
関数参照の主な違いは、メモリのパフォーマンスです。最初の参照は、使用時に &load_message を使用して参照戻り値として宣言する必要がありますが、2 番目の参照は関数の結果を割り当てるだけです。変数の場合、この関数は通常、再帰的なアクションに使用されます。引用については、自分でいくつかの例を書いてテストすることをお勧めします。文字通りの意味を見るだけでは実践には不十分であることは理解していますが、インターネット上には php リファレンスの例がたくさんあります。参考にしていただけます。

ちなみに、php リファレンスにはもう 1 つ一般的に使用される形式があります。それは、関数 gao(&$id) と関数 gao($id) です。この形式のリファレンスでは、結果を比較するだけで済みます。
関数 a(&$t){
$t .= 'xx';
}
関数 b($t){
$t .= 'yy';
}

$x = 'aa';
b ($x);
echo $x; // 出力 aa
a($x);
echo $x; // 出力 aaxx
ここでの出力は b($x) や a($ ではない) であることに注意してくださいx) .(cosmicdusts から例を借りてごめんなさい)

----他の人から学びましょう





http://www.bkjia.com/PHPjc/840757.html
www.bkjia.com

tru​​e

技術記事言うまでもなく、php で関数の前にシンボルを追加することは何を意味しますか? それは 2 つの変数が同時にアドレスを指すことを意味します。 次に、 chhua() { static $b="www.. ."をphp関数の前に追加します。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート