【譲渡】PHP関数抜粋

WBOY
リリース: 2016-06-13 13:02:42
オリジナル
810 人が閲覧しました

【譲渡】php関数リファレンス

?hosserer より転載
最終編集?ホセラー
?

?

一个形象的比喻:

引用:你是我的影子,我穿什么衣服你也是什么衣服,你被unset了,我依然是我。

传值:你是我某个时刻的一张照片,或者说你是一个独立的东西,我说你是苹果,你就是苹果,跟我没有关系了。

以下为转载:

?

php函数前面加&符号的意思是函数的引用返回,php函数前面加&符号有什么作用呢

Php代码?

function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}

$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6?
下面解释下: 
通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别.

至于原因: 这是PHP的规定
php规定通过$a=&test(); 方式得到的才是函数的引用返回.

至于什么是引用返回呢(PHP手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。)

用上面的例子来解释就是
$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b.
而通过$a=&test()方式调用函数呢, 他的作用是将return $b中的 $b变量的内存地址与$a变量的内存地址,
指向了同一个地方. 即产生了相当于这样的效果($a=&b;) 所以改变$a的值,也同时改变了$b 的值 ,所以在执行了:
$a=&test(); $a=5; 以后,$b的值变为了5 ......


php变量前面加&符号是什么意思

先看一个示例

Php代码?
$foo = 321;???
$bar = &$foo;????
$bar = 123;???
print $foo;

$foo = 321;
$bar = &$foo;?
$bar = 123;
print $foo;那么输出的结果将会是什么呢

Php代码?
123????

为什么会这样呢?

改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值
就是说,改变了$bar的值,也就改变了$foo的值了

画像のメタファー:

引用: あなたは私の影です、あなたは私が着る服を何でも着ます、あなたは落ち着きません、それでも私は私です。

パス値: あなたはある瞬間の私の写真、または独立したものです。私はあなたを Apple だと言います。あなたは Apple であり、私とは何の関係もありません。

以下は転載です:

?

php 関数の前にアンパサンドを置くと、関数が参照によって返されることを意味します。 PHP関数

PHP コード?

関数 &test()
{
static $b=0;//静的変数を宣言
$b=$b+1;
echo $b ;
return $b;
}

$a=test();//このステートメントは $b の値を 1 として出力します
$a=5;
$a=test();//このステートメントは、$b の値を 2 として出力します
$a=&test();//このステートメントは $b の値を 3 として出力します
$a=5;
$a=test();//このステートメントは $b の値を 6 として出力します?
以下の説明:
この方法で $a=test(); が取得するものは、実際には関数参照の戻りではなく、通常の関数呼び出しと何ら変わりません。

理由: これは PHP の規定です
php には $a=&test が必要です() ; このようにして得られるのは、関数の参照戻り値です。

参照リターンとは何かについては、PHP マニュアルに次のように記載されています。参照リターンは、関数を使用してどの変数を参照するかを検索する場合に使用されます。 ) にバインドされている場合)

上の例を使用して説明すると、
$a=test() で関数を呼び出します。関数の値を $a に割り当てるだけであり、$a に対する変更は関数内の $b には影響しません。
$a=&test() を介して関数を呼び出すと、その関数は戻り値 $b の変数のメモリ アドレスと $a 変数のメモリ アドレスを同じ場所にポイントすることになります。つまり、この効果と同等です ($a=&b;)。 $a の値を変更すると $b の値も変更されるため、次を実行すると、
$a=&test (); となります。 $b は 5 になります...

PHP 変数の前にある & 記号は何を意味しますか

最初に例を見てください

PHP コード?
$foo = 321;???
$bar = &$foo;????
$bar = 123;???
print $foo;

$foo = 321;
$bar = &$foo;?
$bar = 123;
print $foo;すると出力結果はどうなるでしょうか

PHP コード?
123????

これはなぜでしょうか?

新しい変数を変更すると、元の変数に影響します。
注: のみです。名前付き変数にはアドレスを割り当てることができます
つまり、$bar の値を変更すると、$foo の値も変更されます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート