У меня есть некоторые переменные, как это:PHP, используя значение переменной в имени переменной
$barbarian = 7;
$archer = 7;
$giant = 7;
и функцию, как это:
function army($troopData,$troop,$thing){
if(isset($troop) && $troopData+1 == ${"$thing"}){
$troopData++;
$text = "<span class='army-icon active top-lvl $thing-icon'><span>$troopData</span></span>";
}elseif(isset($troop)){
$troopData++;
$text = "<span class='army-icon active $thing-icon'><span>$troopData</span></span>";
}else{
$text = "<span class='army-icon $thing-icon'><span></span></span>";
}
return $text;
}
Обратите внимание на первый, если: if(isset($troop) && $troopData+1 == ${"$thing"}){
функция называется так: army($troopslvl4000000,$troops4000000, "barbarian"); army($troopslvl4000001,$troops4000001, "archer");
Последний параметр называется функцией $ thing в функции.
Поэтому мне нужно первой строкой, если проверить, если:
1) $troop
устанавливается. 2) $troopData+1 == $barbarian
(или что-то еще. $archer
для вызова второй функции)
Но он не работает. Он всегда использует elseif или else. Первый, если никогда не вызывается ...
В вашем первом утверждении if, что это за '$ {" $ thing "}' должно быть? Это не похоже на действительный PHP для меня – mituw16
@ mituw16, который является переменным variablename. если '$ varname = archer' и' $ archer = 5', то '$$ varname = 5' – inetphantom
да, нотация' $ {"$ thing"} 'также верна, как и' $$ thing'. Я думаю, что проблема заключается в отсутствии «глобальных» заявлений, как в моем ответе. –