[英]PHP: Create a new class object directly from a string return value (string literal)
是否有可能通過PHP中的函數或方法返回的字符串來創建新對象? 喜歡一些逃生方法,我不知道嗎?
非工作示例:
new ($class->method())();
new "stringliteral"();
new ($class = $class->method())();
您可以使用ReflectionClass
做到這一點
function makeRef($className) {
return new ReflectionClass($className);
}
$obj = makeRef($class->method())->newInstance();
在PHP 5.4+中,您可以將其變成單線:
$obj = (new ReflectionClass($class->method()))->newInstance();
您要動態創建類嗎? 閱讀以下內容: http : //docstore.mik.ua/orelly/webprog/pcook/ch07_13.htm
雖然可以調用動態函數,但對類執行動態函數似乎是絕技。
對的,這是可能的。 將字符串分配給變量,然后使用該變量創建對象。
防爆。
<?php
class stringliteral{
function __construct()
{
echo"called";
}
}
function dumyFunc()
{
return 'stringliteral';
}
$str=dumyFunc();
if(class_exists($str))
$obj=new $str();
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.