簡體   English   中英

如何動態創建變量並傳入php內置函數

[英]how to create variable dynamically and pass into php built in function

我有一個這樣的字符串: $shortName = 'DATE,FB,DS,AK,GB,AJ,GL';

現在我想動態創建$DATE $FB $DS $AK $GB $AJ $GL變量,以便將這些變量傳遞給bind_result()函數。

這是我的代碼

$gameQuery  = "SELECT `SHORT` FROM `game` WHERE `STATUS` = 1"
$gameStmt   =  $this->game->prepare($gameQuery);
$gameStmt   -> execute();
$gameStmt   -> bind_result($short);

$shortName = 'DATE';

while ($gameStmt->fetch()) {
   $shortName = $shortName.','.$short; 
}

echo $shortName; #output : DATE,FB,DS,AK,GB,AJ,GL

$chartQuery = "SELECT $shortName FROM `chart` WHERE MONTH(`date`) = ?";
$chartStmt  =  $this->chart->prepare($chartQuery);
$chartStmt  -> bind_param("s",$month);
$chartStmt  -> execute();
$chartStmt  -> bind_result();

有人有解決方案或替代方案嗎?

您可以使用extract()explode()以及array_combine()來執行此操作:

$vars = explode(',', $shortName);
$array = array_combine($vars, $vars);
extract($vars);

演示

explode()使用逗號作為分隔符在數組中轉換該字符串。 array_combine()使用鍵創建一個關聯數組(下一步需要)。 然后extract()將每個數組元素轉換為變量。

這感覺很復雜,但這正是你要求的。

暫無
暫無

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

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