php傳值賦值與引用賦值有什麼區別?

來源:互聯網
上載者:User
傳值賦值:當將一個運算式的值賦予一個變數時,整個原始運算式的值被賦予到目標變數。這意味著,例如,當一個變數的值賦予另一個變數時,改變其中一個變數的值,將不會影響到另一個變數。

<?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 => 'one', 2 => 'two', 3 => 'three' ); unset( $a[2] ); /* 將產生一個數組,定義為 $a = array( 1=>'one', 3=>'three'); 而不是 $a = array( 1 => 'one', 2 => 'three'); */ $b = array_values($a); // Now $b is array(0 => 'one', 1 =>'three') ?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.