ホームページ  >  記事  >  バックエンド開発  >  PHP における値による代入と参照による代入の違いは何ですか?

PHP における値による代入と参照による代入の違いは何ですか?

伊谢尔伦
伊谢尔伦オリジナル
2017-07-17 16:41:562121ブラウズ

値による代入: 式の値を変数に代入する場合、元の式全体の値がターゲット変数に代入されます。これは、たとえば、ある変数の値が別の変数に割り当てられているときにその変数の値を変更しても、他の変数には影響を与えないことを意味します。

<?php 
$a=123; $a=123; 
$b=$a; $b=&$a; 
$a=321; $a=321; 
Echo”$a,$b”;//显示”321,123” Echo”$a,$b”;//显示”321,321” 
?>

参照割り当て: 新しい変数は元の変数を参照するだけです。新しい変数を変更すると、割り当てられる変数 (ソース変数) の前に & 記号を追加するだけです。 PHP では、変数定義で明示的な型定義を必要としません (またはサポートしません)。変数の型は、変数が使用されるコンテキストに基づいて決定されます。つまり、変数 var に文字列値を代入すると、var は文字列になります。 var に整数値を代入すると、それは整数になります。
型キャスト
許可されるキャストは次のとおりです: (int)、(integer) - 整数 (bool) に変換され、(boolean) - ブール値 (float)、(double)、(real) に変換されます。 ) - 文字列 (配列) に変換 - 配列 (オブジェクト) に変換 - オブジェクトに変換 Settype() 型変換用
関数 Settype()

<?php 
$foo = "5bar"; // string 
$bar = true; // boolean 
settype($foo, "integer"); // $foo 现在是 5 (integer) 
settype($bar, "string"); // $bar 现在是 "1" (string) 
?>

変数スコープ 変数のスコープは、変数が定義されているコンテキストです (つまり有効範囲です)。ほとんどの PHP 変数にはスコープが 1 つだけあります。この単一スコープ スパンには、include および require によって導入されたファイルも含まれます。

静的変数 変数スコープのもう 1 つの重要な機能は、静的変数です。静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。
配列 PHP の配列は、実際には順序付けされたグラフです。グラフは値をキーにマッピングするタイプです。この型はさまざまな方法で最適化されているため、実配列、リスト (ベクトル)、ハッシュ テーブル (グラフの実装)、辞書、セット、スタック、キューなどとして使用できます。さらなる可能性を。別のPHP配列を値として使用できるので、ツリーのシミュレーションも簡単に行えます。
array() の定義 array() 言語構造を使用して、新しい配列を作成できます。カンマで区切られたキー => 値パラメータのペアを多数受け入れます。
array( key => value , ... )
// key は整数または文字列にすることができます
// value は任意の値にすることができます

<?php // 现在删除其中的所有单元,但保持数组本身的结构 
// 创建一个简单的数组 foreach ($array as $i => $value) { 
$array = array(1, 2, 3, 4, 5); unset($array[$i]); 
print_r($array); } 
print_r($array); 
// 添加一个单元(注意新的键名是 5,而不是你可能以为的 0) 
$array[] = 6; 
print_r($array); // 重新索引: 
$array = array_values($array); 
$array[] = 7; 
print_r($array); 
?>

unset() 関数を使用すると、配列内のキー名の設定を解除できます。配列のインデックスは再作成されないことに注意してください。

りー

以上がPHP における値による代入と参照による代入の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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