我正在尝试 - PHP 新手。我看了但无法弄清楚 - 我可能没有足够的词汇来适当搜索......
我尝试创建一个可以使用的动态变量数组,而不是像心脏病学、皮肤病学等硬编码主题。我打算将它们放入数组中,但我遇到的问题是如何正确解析名称。
示例:
$cardsstatsstddevall = $topicassocstring.['StandardDeviation'];
我想动态生成 $topicassocstring.['StandardDeviation']。
尝试了一些不同的事情:
$TopicFull='Cardiology';
$TopicShort='cards';
$topicassocstring = '$'."{$TopicShort}".'statsassoc';
$topicassoc = $topicassocstring;
$topicstddev = "{$topicassoc}"."['StandardDeviation']";
代码块:
$cardsstats = mysqli_query($con, "SELECT STDDEV_SAMP({$TopicFull}Percent) AS StandardDeviation, VARIANCE({$TopicFull}Percent) As Variance, AVG({$TopicFull}Percent) As Average FROM residentpagers WHERE {$TopicFull}Percent != 0 AND PGY !=99;");
$cardsstatsassoc = mysqli_fetch_assoc($cardsstats);
$cardsstatsstddevall = $cardsstatsassoc['Standard Deviation'];
$cardsstatsvarianceall = $cardsstatsassoc['Variance'];
$cardsstatsaverageall = $cardsstatsassoc['Average'];
我做错了什么?
最佳答案
您似乎在示例中混合/混淆了一些不同的概念:
#1 - 关联数组键只是字符串,引用支持表达式:
$fruitValues = ['apple' => 123, 'banana' => 456, 'orange' => 789];
$fruit = 'apple';
$fruitValues[$fruit]; // int(123) - same as $fruitValues['apple']
这里,$fruit
保存字符串 "apple"
,它用作数组键($fruitValues[$fruit]
是与 $fruitValues["apple"]
相同)。
#2 - 变量名称可以是动态的(有时称为变量):
$apple = 123;
$fruit = 'apple';
$$fruit; // int(123) - same as $apple
这里,$fruit
变量保存字符串 "apple"
,它用作变量的名称 ($$fruit
与 ${"apple"}
相同 与 $apple
相同)。
#3 - 变量名称支持表达式:
$apple = 123;
$foo = 'ap';
$bar = 'ple';
${$foo . $bar}; // int(123) - same as $apple
这里,$foo
和 $bar
中的字符串连接成字符串 "apple"
,然后将其用作变量的名称(${$foo . $bar}
与 ${"ap". "ple"}
相同与 ${ "apple"}
与 $apple
相同)。
关于php - 在 PHP 中动态生成数组的适当引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766636/