php引用符
Ⅰ php->是什麼意思
一、=>,->的意思:
->是對象執行方法或取得屬性用的。
=>是數組里鍵和值對應用的。
二、用法
1、=> 的用法數組中用於數組的key和value之間的關系例如:
$a=array('0'=>'1','2'=>'4',);echo$a['0'];echo$a['2'];
2、-> 的用法類中用於引用類實例的方法和屬性例如:
classTest{functionadd(){return$this->var++;}var$var=0;}$a=newTest;
//實例化對象名稱
echo$a->add();echo$a->var;
(1)php引用符擴展閱讀
PHP中->代碼如下:
<?php
class Car {
public $speed = 0;
//增加speedUp方法,使speed加10
public function speedUp(){
$this->speed+=10;
}
}
$car = new Car();
$car->speedUp();
echo $car->speed;
?>
PHP中=>代碼如下:
<?php
//從數組變數$arr中,讀取鍵為apple的值
$arr = array('apple'=>"蘋果",'banana'=>"香蕉",'pineapple'=>"菠蘿");
$arr0=$arr["apple"];
if( isset($arr0) )
{print_r($arr0);
}
?>
Ⅱ php函數參數中的&符號是什麼意思
在PHP中&符號即傳的是變數的引用而不是拷貝,引用意味著用不同的名字訪問同一個變數內容。這並不像 C 的指針,它們是符號表別名。注意在 PHP 中,變數名和變數內容是不一樣的,因此同樣的內容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身 - 變數名是目錄條目,而變數內容則是文件本身。引用可以被看作是 Unix 文件系統中的緊密連接。
PHP 的引用允許你用兩個變數來指向同一個內容。意思是,當你這樣做時:
<?php
$a =&$b
?>
這意味著 $a 和 $b 指向了同一個變數。
注: $a 和 $b 在這里是完全相同的,這並不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一個地方。
同樣的語法可以用在函數中,它返回引用,以及用在 new 運算符中(PHP 4.0.4 以及以後版本):
<?php
$bar =& new fooclass();
$foo =& find_var ($bar);
?>
注: 不用 & 運算符導致對象生成了一個拷貝。如果你在類中用 $this,它將作用於該類當前的實例。沒有用 & 的賦值將拷貝這個實例(例如對象)並且 $this 將作用於這個拷貝上,這並不總是想要的結果。由於性能和內存消耗的問題,通常你只想工作在一個實例上面。
盡管你可以用 @ 運算符來關閉構造函數中的任何錯誤信息,例如用 @new,但用 &new 語句時這不起效果。這是 Zend 引擎的一個限制並且會導致一個解析錯誤。
引用做的第二件事是用引用傳遞變數。這是通過在函數內建立一個本地變數並且該變數在呼叫范圍內引用了同一個內容來實現的。例如:
<?php
function foo (&$var) {
$var++;
}
$a=5;
foo ($a);
?>
將使 $a 變成 6。這是因為在 foo 函數中變數 $var 指向了和 $a 指向的同一個內容。更多詳細解釋見引用傳遞。
引用做的第三件事是引用返回。
引用不是什麼
如前所述,引用不是指針。這意味著下面的結構不會產生你預期的效果:
<?php
function foo (&$var){
$var =& $GLOBALS["baz"];
}
foo($bar);
?>
這將使 foo 函數中的 $var 變數在函數調用時和 $bar 綁定在一起,但接著又被重新綁定到了 $GLOBALS["baz"] 上面。不可能通過引用機制將 $bar 在函數調用范圍內綁定到別的變數上面,因為在函數 foo 中並沒有變數 $bar(它被表示為 $var,但是 $var 只有變數內容而沒有調用符號表中的名字到值的綁定)。
引用傳遞
你可以將一個變數通過引用傳遞給函數,這樣該函數就可以修改其參數的值。語法如下:
<?php
function foo (&$var) {
$var++;
}
$a=5;
foo ($a);
// $a is 6 here
?>
注意在函數調用時沒有引用符號 - 只有函數定義中有。光是函數定義就足夠使參數通過引用來正確傳遞了。
以下內容可以通過引用傳遞:
變數,例如 foo($a)
New 語句,例如 foo(new foobar())
從函數中返回的引用,例如:
<?php
function &bar() {
$a = 5;
return $a;
}
foo(bar());
?>
詳細解釋見引用返回。
任何其它表達式都不能通過引用傳遞,結果未定義。例如下面引用傳遞的例子是無效的:
<?php
function bar(){ // Note the missing &
$a = 5;
return $a;
}
foo(bar());
foo($a = 5) // 表達式,不是變數
foo(5) // 常量,不是變數
?>
這些條件是 PHP 4.0.4 以及以後版本有的。
引用返回
引用返回用在當你想用函數找到引用應該被綁定在哪一個變數上面時。當返回引用時,使用此語法:
<?php
function &find_var ($param){
/* ...code... */
return $found_var;
}
$foo =& find_var ($bar);
$foo->x = 2;
?>
本例中 find_var 函數所返回的對象的屬性將被設定(譯者:指的是 $foo->x = 2; 語句),而不是拷貝,就和沒有用引用語法一樣。
注: 和參數傳遞不同,這里必須在兩個地方都用 & 符號 - 來指出返回的是一個引用,而不是通常的一個拷貝,同樣也指出 $foo 是作為引用的綁定,而不是通常的賦值。
取消引用
當你 unset 一個引用,只是斷開了變數名和變數內容之間的綁定。這並不意味著變數內容被銷毀了。例如:
<?php
$a = 1;
$b =& $a;
unset ($a);
?>
不會 unset $b,只是 $a。
再拿這個和 Unix 的 unlink 調用來類比一下可能有助於理解。
引用定位
許多 PHP 的語法結構是通過引用機制實現的,所以上述有關引用綁定的一切也都適用於這些結構。一些結構,例如引用傳遞和返回,已經在上面提到了。其它使用引用的結構有:
global 引用
當用 global $var 聲明一個變數時實際上建立了一個到全局變數的引用。也就是說和這樣做是相同的:
<?php
$var =& $GLOBALS["var"];
?>
這意味著,例如,unset $var 不會 unset 全局變數。
$this
在一個對象的方法中,$this 永遠是調用它的對象的引用。
Ⅲ php里=&是什麼意思
這是引用賦值,應該注意的是 =& 不是一個運算符,不能看成一個整碧數體。
而 &XoopsPreload::getInstance() 應該看成一個整體,相當於運則把XoopsPreload::getInstance()的引用賦值給$xoopsPreload,也就是變數$xoopsPreload是類XoopsPreload實例的一個別名,改變變數$xoopsPreload的值將會改變類XoopsPreload的內部悔悄首值,這應該是一個單例吧。
Ⅳ php引用傳遞中的&什麼意思,有什麼用
其實圖片中的文字已經描述得很詳細了,如果你是循序漸進學到這里的,應該是可以理解的啊。
加了&就是引用傳遞,就是把實參的內存地址傳遞給函數內部的形參,這樣的話函數內部對形參的任何修改都會直接影響到外部的實參,也就是說這種情況下實參和形參其實是同一個變數;
而不加&則是值傳遞,就是把實參的值傳遞給函數內部的形參,這時候函數內部對形參的任何修改都與外部的實參沒有任何關系,不會改變實參的值。
打個比方,值傳遞就好比你給某人100塊錢,然後他拿這錢去不管怎麼花都與你無關了;而引用傳遞則好比你把自己的銀行帳號密碼都告訴某人,那麼他此後用這賬號所做的任何消費行為都與你的總資產息息相關了!
Ⅳ php &=是什麼意思
PHP是一個擁有眾多開發者的開源軟體項目,最開始是Personal Home Page的縮寫,已經正式更名為 "PHP: Hypertext Preprocessor"。PHP是在1994年由Rasmus Lerdorf創建的 ,最初只是一個簡單的用Perl語言編寫的統計他自己網站訪問者數量的程序。後來重新用C語言編寫,同時可以訪問資料庫,1995年,PHP對外發表第一個版本PHP1。此後,越來越多的網站開始使用PHP,並且強烈要求增加一些特性,如循環語句和數組變數等,1995年發布的PHP2加入了對mySQL的支持。
Andi Gutmans和Zeev Suraski在為一所大學的項目中開發電子商務程序時發現PHP2功能明顯不足,於是他們重寫了代碼發布了PHP3。PHP3是類似於現代PHP語法結構的第一個版本,PHP3的最強大的功能是它的可擴展性,PHP3的新功能和廣泛的第三方資料庫、API的支持使得這樣程序的編寫成為可能。
PHP3官方發布不久,Andi Gutmans和Zeev Suraski開始重新編寫PHP代碼。經過不懈努力Zend引擎研發成功並且實現了設計目標,並在1999年中期引入 PHP。基於該引擎並結合了更多新功能的 PHP4於2000年5月正式發布。
Ⅵ 現在發起一個搶答:題目是,PHP聲明變數用什麼符號定義
php聲明和調用變數的符號主要是var_mp(property_exists($c,'d'));//bool(true)。
如果對一個未定義的變數進行引用賦值、引用參數傳遞或引用返回,則會自動創建該變數。
同樣的語法可以用在函數中,它返回引用,以及用在new運算符中(PHP4.0.4以及以後版本)。
自PHP5起,new自動返回引用,因此在此使用=&已經過時了並且會產生E_STRICT級別的消息。
運行代碼是讓$b來引用$a的內容,然後改變$a的內容,$b的內容也會隨之變化。具體的標識符包括$a,$b,$c。
Ⅶ php中::是什麼意思
一、php中的::是調用類中的靜態方法或者常量,屬性的符號。PHP,是英文超級文本預處理語言Hypertext Preprocessor的縮寫。中文名:「超文本預處理器」是一種通用開源腳本語言。
二、PHP 是一種 HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。
三、PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多,PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。被廣泛的運用。
例如
1、class aaa{
static function ar(){
}
function br(){}
}
2、使用非靜態方法,要先創建實例
$obj = new aaa();
$obj -> br();
3、使用靜態方法,無需創建實例,直接使用類名
aaa::ar();
(7)php引用符擴展閱讀:
1、PHP作為網路開發的強大語言之一,現在應用非常廣泛,具有開放源代碼,跨平台性強,開發快捷,效率高,面向對象,並且易於上手,專業專注等諸多優點。
2、各種PHP開發框架也讓程序開發變的簡單有效。
3、php框架對很多新手而言可能會覺得很難攀越,其實不然 ,只要知道一個框架的流程,明白原理了,基本類似框架都可以看懂,php框架真正的發展要從php5開始了,其實php4時代就有一些框架,但是因為框架並沒有給大家帶來多方便而覺得很復雜,速度沒有純php好,所以一直到了php5才有大的發展,php5的面向對象模型的修改對框架的發展起了很大的作用。
參考鏈接:PHP框架_網路
Ⅷ php中->這個符號具體代表什麼意思
->在php里是調用對象方法很或者屬性的運算符。在一個類中,類的函數需要調用自身的方法或者屬性需要用$this->來調用,而在類的實例中,也是通過->來調用的,只是前面的變數不是$this
例如:
<?php
class test{
public $test="test";
public function get_test(){
return $this->test;//調用public屬性$test,在php類中不能用$test
}
}
$a = new test();
echo $a->get_test();//該語句輸出test