我有一个名为$repeater的变量,它可以是低、中或高。
我还有一个变量叫做...
$low_protein_feed
$moderate_protein_feed
$high_protein_feed
我想根据$repeater的值来调用其中一个变量。
我已经走到这一步了。
echo "${$repeater}_protein_feed";
例如,...which输出moderate_protein_feed。但是当我想让它回显$moderate_protein_feed变量的值时,它会回显为文本。
我觉得我离这里不远了。感谢您的意见
发布于 2018-05-30 07:54:30
让我考虑另一种方法,大多数开发人员都认为这种方法比使用变量更好:
//array for the protein_feed's
$protein_feed=array('low'=>'1','moderate'=>'2','high'=>'3');
//then to select one based on the value of $repeater
echo $protein_feed[$repeater];
发布于 2018-05-30 08:47:37
我认为您希望这样做:
<?php
// Example - though you should use objects, key -> values,
// arrays instead in my opinion.
$low_protein_feed = "Low protein";
$moderate_protein_feed = "Lots of protein";
$high_protein_feed = "high grade protein";
$types = array("low", "moderate", "high");
foreach($types as $type) {
echo ${$type . '_protein_feed'} . " \n";
}
输出:
$ php testme.php
Low protein
Lots of protein
high grade protein
然而,你真的应该使用这样的东西:
$types = array("low", "moderate", "high");
$proteins=array('low'=>'1','moderate'=>'2','high'=>'3');
foreach($types as $type) {
echo $proteins[$type];
}
更高级的设计,你可以使用对象,并声明一个类型的对象,并使用一个标准类型的项目。
在这里进一步阅读动态变量名称以及PHP5/7之间的差异:
Using braces with dynamic variable names in PHP
http://www.dummies.com/programming/php/how-to-use-php-variable-variables/
https://stackoverflow.com/questions/50594465
复制相似问题