簡體   English   中英

在PHP中用變量名定義一個類?

[英]Define a class with a variable name in PHP?

我希望能夠按此順序做一些事情

$name = "Hello".time().mt_rand();
class $name {
    function hellolol() {
        echo "LOL";
    }
}
$name::hellolol();

這樣我就可以用PHP構建可重載的模塊系統。 這是否有可能,如果可以,我將如何做這樣的事情?

編輯:從那以后,我已經將其轉變為一個項目,該項目實質上完成了可接受的答案所建議的工作。 這是鏈接: https : //github.com/Modfwango/Modfwango

$name = "Hello".time().mt_rand();
eval(sprintf('
class %s {
    static function hellolol() {
        echo "LOL";
    }
}', $name));
$name::hellolol();

很討厭,但是很適合嘲笑等等。

從技術上講,這可能的,只是非常非常糟糕的方式。

首先,保存此文件:

<?php
// GeneratedClass.php
class CLASSNAME {
    function hellolol(){
        echo "LOL";
    }
}

然后,使用以下命令創建具有自定義名稱的類:

<?php
function generate_class($name){
    eval('?>'.str_replace('CLASSNAME', $name, file_get_contents('GeneratedClass.php')));
}

generate_class("Hello".time().mt_rand());

同樣,這不是一個好主意! 除了與eval有關的事情可能不是一個好主意之外,通過手動解析這些類,您將失去IDE會給您帶來的任何優勢,這些文件將無法被諸如memcached之類的內容緩存,並且完全是這樣一場噩夢。 但這是可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM