[英]PHP OOP - Autoinitiate objects
<?php function __autoload($class_name)
{
include_once 'inc/classes/class.' . $class_name . '.inc.php';
}
?>
現在,我在使用__autoload時自動使用了我的類。 但是我在想,為什么不也自動自動啟動對象,所以您不必在頁面本身中啟動對象,您可以僅調用類的屬性而無需啟動對象。
但是在這里我被困住了,我以為我可以像下面的例子那樣做,但是它不起作用,對象沒有啟動。
<?php
function __autoload($class_name)
{
include_once 'inc/classes/class.' . $class_name . '.inc.php';
'$'.$class_name = new $class_name;
}
?>
嘗試這個:
$$class_name = new $class_name();
這根本不符合邏輯。 就像您說的那樣,在引用該類時會發生自動加載。
如何引用? 讓我們來看看:
$object = new TheClassName()
-您已經有了實例。 為什么要自動創建另一個? TheClassName::I_NEED_THIS_CONSTANT
如果訪問靜態方法/屬性/常量,為什么需要一個自動創建的實例? class_exists()
調用-如果我只想檢查類是否存在,為什么需要一個自動創建的實例? 您也可以嘗試使用{}。 在您的示例中,它將是:
${$class_name} = new $class_name;
使用$ {},您可以創建如下的動態變量:
$i = '1';
${'tmp' . $i} = 'Hello world';
echo $tmp1; // Hello world
您還應該使用spl_autoload_register而不是__autoload(因為將來可能不推薦使用或刪除它)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.