admin

PHP / MySQL-递增变量名称以循环获取数据

sql

我有我行teams的表命名player1player2player3
player12。在PHP脚本中,我将它们设置为变量($player1$player2…),并希望遍历它们以检查它们是否为NULL,以及是否不对其进行计数。

如何在PHP中增加变量?我尝试这样做是这样的:

<?
    $playerspicked = 0;
    for($i = 1; $i <= 12; $i++) {
        $playercheck = "$player"+$i;
        if($playercheck != 0) {
            $playerspicked++;
        }
    }
?>

但这行不通。


阅读 212

收藏
2021-07-01

共1个答案

admin

您可以{}使用变量名周围的复杂表达式(花括号)来完成此操作。

if(empty(${"player$i"})) {
    //player$i is empty
}

复杂的表达式使您可以动态设置变量名。

为了帮助您更好地理解它们是如何工作的,我将向您展示您也可以像常规字符串连接一样使用它们,如下所示

$variable = "many test";
echo "this is a test echo. {$variable}";

我通常使用它来根据其键为许多数组变量生成变量

$array = array("key1" => "value1", "key2" => "value2");
foreach($array as $key => $value) {
    ${$key} = $value;
}

上面的代码将创建2个变量$key1$key2,并将它们与适当的值关联。

另外,我很确定您可以$在变量的前面添加另一个,但是我要说这很难阅读并弄清楚发生了什么。

$playercheck = "player"+$i;  
if($$playercheck != 0) {
    $playerspicked++;
}
2021-07-01