[英]How to pass dynamically created arguments (variable variables arrays) to function in 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.