簡體   English   中英

PHP:直接從字符串返回值(字符串文字)創建新的類對象

[英]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.

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