這可能是一個XY問題,所以我要解釋我想要先做什麼。我試圖創建一個單一的PHP文件來處理我所有的頁面刷新AJAX調用。這意味着我希望能夠發送一個類名稱,以及類構造函數所需的變量列表,然後爲它創建類。如何將一組變量傳遞給一個類
我可以創建類罰款。 $class = new $className();
適用於創建類。問題是傳入默認變量。大多數變量都是包含其他類的對象,所以一旦創建了類,我就不能僅僅包含這些變量,我需要在創建類時傳遞它們。
我想沿着線的東西:
$varStr = '';
$s = '';
foreach($vars as $var) {
switch($var['type']) {
case 'object':
$varStr .= $s . '$' . $var['value'];
break;
case 'variable':
$varStr .= $s . $var['value'];
}
$s = ',';
}
$class = new $className(echo $varStr);
現在很明顯回聲$ varStr是不會在那裏工作,但我不知道會出現什麼。有什麼我可以做,將輸出變量從我的數組到類構造函數?我試圖做甚至可能嗎?有沒有更好的辦法?
雖然我明白我可以將整個數組傳遞給類構造函數,但這會使程序的主要部分複雜化,而且我寧願放棄使用AJAX刷新的單個頁面的想法。
您可能想了解['Reflection :: newInstanceArgs'](http://php.net/manual/en/reflectionclass.newinstanceargs.php) – Touki
您是否需要將對象傳遞給構造函數,或者您可以傳遞方法調用或數據成員的結果?我問,因爲讓課程依賴於其他班級的工作,將他們緊密地結合在一起,並可能導致一些額外的維護。 –
爲什麼將數組傳遞給構造函數會使事情複雜化? (比你在做什麼) – Ben