首頁  >  文章  >  後端開發  >  php傳值賦值與引用賦值有何不同?

php傳值賦值與引用賦值有何不同?

伊谢尔伦
伊谢尔伦原創
2017-07-17 16:41:562053瀏覽

傳值賦值:當一個表達式的值被賦予一個變數時,整個原始表達式的值被賦予到目標變數。這意味著,例如,當一個變數的值賦予另一個變數時,改變其中一個變數的值,將不會影響到另一個變數。

<?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) - 轉換成浮點型(string) - 轉換成字串(array) - 轉換成陣列(object) - 轉換成物件Settype()進行型別轉換
函數Settype()

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

變數範圍變數的範圍即它定義的上下文背景(也就是它的生效範圍)。大部分的 PHP 變數只有一個單獨的範圍。這個單獨的範圍跨度同樣包含了 include 和 require 所引入的檔案。
靜態變數變數範圍的另一個重要特性是靜態變數(static variable)。靜態變數僅在局部函數域中存在,但當程式執行離開此作用域時,其值並不會遺失。
陣列PHP 中的陣列其實是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方面做了優化,因此可以把它當成真正的數組來使用,或列表(向量),散列表(是圖的一種實現),字典,集合,棧,隊列以及更多可能性。因為可以用另一個 PHP 陣列當值,也可以輕鬆模擬樹。
定義 array() 可以用 array() 語言結構來新建一個 array。它接受一定數量用逗號分隔的 key => value 參數對。
array( key => value , ... )
// key 可以是integer 或string
// 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 
$a = array( 1 => &#39;one&#39;, 2 => &#39;two&#39;, 3 => &#39;three&#39; ); 
unset( $a[2] ); 
/* 将产生一个数组,定义为 
$a = array( 1=>&#39;one&#39;, 3=>&#39;three&#39;); 
而不是 
$a = array( 1 => &#39;one&#39;, 2 => &#39;three&#39;); 
*/ 
$b = array_values($a); 
// Now $b is array(0 => &#39;one&#39;, 1 =>&#39;three&#39;) 
?>

以上是php傳值賦值與引用賦值有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn