php连接的正确方法

php连接的正确方法,php,Php,嘿,这是连接的正确方法吗?它似乎不想为我工作 $driver1points = 0; $driver2points = 0; $driver3points = 0; $driver4points = 0; for($i = 1; $i <= 4; $++){ if(${"driver".$i} == $driverrace["fastestlap"]) {

嘿,这是连接的正确方法吗?它似乎不想为我工作

        $driver1points = 0;
        $driver2points = 0;
        $driver3points = 0;
        $driver4points = 0;

        for($i = 1; $i <= 4; $++){
            if(${"driver".$i} == $driverrace["fastestlap"]) {
                ${"driver". $i ."points"} += $driver_points_system["fastestlap"];
                $racepoints += $team_points_system["fastestlap"];
                break;
            }
         }
$driver1points=0;
$driver2点=0;
$driver3points=0;
$driver4分=0;

对于($i=1;$i我同意评论中的说法。数组是更好的处理方法

<?php
$driver1points = 0;
$driver2points = 0;
$driver3points = 0;
$driver4points = 0;

for($i = 1; $i <= 4; $++) {
    $driver = "driver$i";
    if($$driver == $driverrace["fastestlap"]) {
        ${$driver."points"} += $driver_points_system["fastestlap"];
        $racepoints += $team_points_system["fastestlap"];
        break;
    }
}

这段代码中有很多错误。你忘记了条件(if)语句之后的)值,你需要一个==而不是一个=。很抱歉,它只是代替了为每个driver1、driver2、driver3、driver4执行if(driver1=$driverrace[“fastestlap”]),这样的循环和一个中断,将节省cpu周期,因为一旦找到匹配项,它将退出循环。还有其他更好的方法吗???。您肯定应该使用driverPoints数组来存储点值,使用driver数组来存储驱动程序。您可以这样写:if(“driver$1”=$driverrace['fastestlap'])和if(“driver{$1}”=$driverrace['fastestlap']),只要进行连接即可:)说真的,你需要使用数组——像那样连接变量名是一件讨厌的事。非常感谢!我想是时候让我的头脑转向指针了。它们在PHP中非常简单。您可以使用&in变量赋值,并为该变量指定一个引用,而不是复制变量的内容。您完全按照正常方式处理变量。例如$a=1$b=一美元$b=5;echo$a;因为您只是将数据复制到一个新变量中,所以仍然会给您1。如果您分配了一个引用,例如$a=1$b=&$a$b=5;echo$a;您的输出现在将是5,因为您没有将$a的值分配给新变量$b,而是创建了$b作为对$a的引用。在处理数组、超全局变量等时非常好。通过引用赋值的其他方面比通过引用赋值的简单变量更常用。函数通过引用接受参数以直接更改变量,而不是指定返回结果。函数通过引用传递对象。这两个是我经常使用的。我希望前面的评论能让您深入了解引用是如何工作的,而这个评论能让您更多地了解它们是如何使用的。嘿,在上面代码的if语句中,$driver变量实际上是在比较一个单独的变量,而不是drivers点,基本上,用户有$driver1$driver2$driver3$driver4,数据库中有驱动程序ID值,您能在for each语句中传递两个变量吗?若并没有的话,它仍然可以为每个人做吗?是的,他们做到了!非常感谢您抽出时间!我会读一些关于它们的书。
<?php
$drivers['bill']   = 0;
$drivers['ted']    = 0;
$drivers['cheech'] = 0;
$drivers['chong']  = 0;

foreach ( $drivers as $driver => &$points ) {
    if ( $driver == $race['fastestlap'] ) {
        echo "$driver had the fastest lap!";
        $points     += $driver_points_system['fastestlap'];
        $racepoints += $team_points_system['fastestlap'];
        break;
    }
}