2011-08-27 66 views
0

如何查看一個類中的多個對象是在php中加載的。另外,這些對象是否會在服務器上的單個會話中加載?或者在服務器端也可以跟蹤來自其他會話的對象?請參閱php中的類的對象

其實我很困惑。當一個對象使用PHP加載時,它駐留在哪裏?它在瀏覽器中嗎?它是否在會話中,並在會話過期後立即到期?

+0

可能重複[列出某個類的所有對象](http://stackoverflow.com/questions/2172959/listing-all-objects-of-a-certain-class)或[獲取所有對象(http://stackoverflow.com/questions/6492333/get-all-objects-of-a-particular-class)和[獲取PHP中所有類的實例](http:// stackoverflow。 com/questions/475569/get-all-a-class-in-php) – mario

回答

0

這會有幫助嗎?

<?php 

class Hello { 
    public function __construct() { 
    } 
} 

$hello = new Hello; 
$hi = new Hello; 

$i = 0; 

foreach (get_defined_vars() as $key => $value) { 
    if (is_object($value) && get_class($value) == 'Hello') 
     $i++; 
} 

echo 'There are ' . $i . ' instances of class Hello'; 
0

我如何看到一個類的多個對象在php中加載。

我不認爲有沒有辦法做到這一點,如果你沒有實際上在計算類的構造函數。

當一個對象使用PHP加載時,它駐留在哪裏?它在瀏覽器中嗎?它是否在會話中,並在會話過期後立即到期?

它駐留在爲該請求分配的PHP進程調用的內存中。一旦當前請求完成或終止(或已被unset()),它就會過期。

該會話有助於識別跨多個請求的用戶。它存活的時間更長 - 當它被破壞時,當用戶的會話cookie被刪除時,或當會話達到其到期時間時到期。

0

一個對象只是一個複雜的變量。它可以將幾個簡單類型放在一起,並且可以具有功能。

儘管簡單類型和對象之間存在很多差異,但對象只是一個變量。對象不會在會話中共享,或發送給瀏覽器,而不僅僅是簡單的整數或字符串。

0

一個對象只存在於服務器上,在內存中,並且只存在於腳本執行期間,除非保存到用戶的$_SESSION中。即使保存,它也不再是一個對象,而是成爲一個序列化的字符串。它可以在同一會話或稍後的會話中重新組合成一個對象。

腳本的生命週期指的是Web服務器調用它的時刻,直到腳本最後一行處理完成。即使在腳本完全終止之前,PHP引擎也可以通過垃圾回收處理腳本不再需要的對象。

+0

好的!但我正在瀏覽wordpress代碼,並在播放時發現它存在一個名爲wp_user的對象,即使有一個腳本正在運行,與wp_user無關。你能詳細說明嗎? –

+0

我不能進一步闡述,因爲我不熟悉WP。 –