php文件對象
『壹』 關於php的對象和引用!!
要理解這個問題,關鍵是要理解php的賦值機制。其實就是四個字:「寫時拷貝」。如下圖,當把a的值賦給b,a和b的關系屬於兩個變數指向同一內容。但是當其中一個變數賦值為不同於當前內容的值時,才會重新分配一塊內存來保存不同的變數,此時兩個變數的指向內容變成兩個,即所謂「寫時拷貝」。
如果理解了「寫時拷貝」的概念,我們繼續。在以下代碼後,繼續增加一次輸出。
classA{
public$foo=1;
}
$a=newA;
$b=$a;//$a,$b都是同一個標識符的拷貝
//($a)=($b)=<id>
$b->foo=2;
echo$a->foo." ";
$b = 3;echo $a->foo;// 此為新增代碼。根據寫時拷貝原理,此時a仍指向對象內容。而b被賦值為3,因此b指向內容為3。
如果到此還沒被搞蒙,繼續進一步。
通過「&」賦值,跟以上賦值是有區別的,屬於一塊內存地址,擁有兩個不同名稱的情況。也就是說,其一改變,另一個會跟著改變。在以下代碼後,繼續增加一次輸出。
$c=newA;
$d=&$c;//$c,$d是引用
//($c,$d)=<id>
$d->foo=2;
echo$c->foo." ";
$b = 3;echo $a->foo;// 此為新增代碼。此時a和b的值都指向3這個值,會報一個不是對象的錯誤,如果直接輸出a或b會發現,兩個變數的值都是3。現象請自行驗證。
『貳』 php 類 對象 實例
&是引用的意思,引用和和c指針差不多,但不能進行數學運算,可以認為引用是一個變數的別名
$assigned = $instance;
//$assigned 是個新變數,然後把$instance的值賦給$assigned
$reference =& $instance;
//$reference是$instance的引用,或者說$reference是$instance的別名,這兩個其實是一個變數,地址都是一樣的
$reference->var6 = '$assigned will have this value';
//因為$reference是$instance的引用(或別名),所以$instance->var6也變了
$instance = null;
//這個也是同理,$reference和$instance是一個變數
//$assigned一直沒有變,因為$assigned和$instance($reference)是兩個變數
『叄』 PHP中對象的小問題
首先,大多數情況下,涉及到類和函數(方法)的時候才會用到this!
在一個類中,即在同一個class下,會存在多個變數和函數,例如/*
class test{
private $user;
function setuser($user){
$this->user = $user ;//請注意這句話
}
}*/
這個小例子中出現了兩個user,如何來區分?對於function來說,使用傳遞過來的參數或者new出來的變數,直接寫名字;使用function之外的變數,用$this->變數名;
對象使用的是$對象->變數名,而不是this,二樓說的不清楚
『肆』 PHP中怎樣創建一個空對象
1、打開php的編輯器,進入主頁面,首先我們新建好一個php文件,然後寫上注釋內容,這是編程的良好習慣。
『伍』 可以在一個php類文件中創建另一個php類文件的對象嗎
1、不可以在一個類裡面再創建一個類,但是可以require一個包含類的文件
2、一個php文件裡面可以創建多個類
3、一個函數裡面可以再創建另一個函數
<?php
functiona(){
functionb(){
echo123;
}
b();
}
a();
?>
不知道是不是你想要的答案