如何查看一個類中的多個對象是在php中加載的。另外,這些對象是否會在服務器上的單個會話中加載?或者在服務器端也可以跟蹤來自其他會話的對象?請參閱php中的類的對象
其實我很困惑。當一個對象使用PHP加載時,它駐留在哪裏?它在瀏覽器中嗎?它是否在會話中,並在會話過期後立即到期?
如何查看一個類中的多個對象是在php中加載的。另外,這些對象是否會在服務器上的單個會話中加載?或者在服務器端也可以跟蹤來自其他會話的對象?請參閱php中的類的對象
其實我很困惑。當一個對象使用PHP加載時,它駐留在哪裏?它在瀏覽器中嗎?它是否在會話中,並在會話過期後立即到期?
這會有幫助嗎?
<?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';
我如何看到一個類的多個對象在php中加載。
我不認爲有沒有辦法做到這一點,如果你沒有實際上在計算類的構造函數。
當一個對象使用PHP加載時,它駐留在哪裏?它在瀏覽器中嗎?它是否在會話中,並在會話過期後立即到期?
它駐留在爲該請求分配的PHP進程調用的內存中。一旦當前請求完成或終止(或已被unset()
),它就會過期。
該會話有助於識別跨多個請求的用戶。它存活的時間更長 - 當它被破壞時,當用戶的會話cookie被刪除時,或當會話達到其到期時間時到期。
一個對象只是一個複雜的變量。它可以將幾個簡單類型放在一起,並且可以具有功能。
儘管簡單類型和對象之間存在很多差異,但對象只是一個變量。對象不會在會話中共享,或發送給瀏覽器,而不僅僅是簡單的整數或字符串。
一個對象只存在於服務器上,在內存中,並且只存在於腳本執行期間,除非保存到用戶的$_SESSION
中。即使保存,它也不再是一個對象,而是成爲一個序列化的字符串。它可以在同一會話或稍後的會話中重新組合成一個對象。
腳本的生命週期指的是Web服務器調用它的時刻,直到腳本最後一行處理完成。即使在腳本完全終止之前,PHP引擎也可以通過垃圾回收處理腳本不再需要的對象。
好的!但我正在瀏覽wordpress代碼,並在播放時發現它存在一個名爲wp_user的對象,即使有一個腳本正在運行,與wp_user無關。你能詳細說明嗎? –
我不能進一步闡述,因爲我不熟悉WP。 –
可能重複[列出某個類的所有對象](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