首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将整数添加到PHP变量

如何将整数添加到PHP变量
EN

Stack Overflow用户
提问于 2015-11-24 13:21:01
回答 1查看 117关注 0票数 0

我正在尝试创建一个基于查询的排序算法。本质上,用户将输入身高、体重和其他一些属性的值。然后,我查询我们的模型数据库,将此人与与用户输入的测量值最接近的人进行匹配。我尝试基于一个加权变量完成此操作,该变量在查询的"while“语句中赋值,然后在最后返回该变量的值。下面是一些代码,向您展示我的意思:

代码语言:javascript
代码运行次数:0
运行
复制
$userHeight=$_POST['height'];
$userWeight=$_POST['weight'];
$userShoulder=$_POST['shoulder'];
$userWaist=$_POST['waist'];
$userInseam=$_POST['inseam'];

$heightMatchMultiple=0;
$heightMatchMultiple=0;
$weightMatchMultiple=0;
$shoulderMatchMultiple=0;
$waistMatchMultiple=0;
$inseamMatchMultiple=0;

function matchValues($array){
        if(mysqli_num_rows($array) > 0) {
            while($row=mysqli_fetch_array($array)){
                $heightMatchMultiple=0;

                if(isset($row['modelHeight'])){
                    if($userHeight==$row['modelHeight']){
                        $heightMatchMultiple=10;
                    }
                    elseif($userHeight==$row['modelHeight']+1 || $userHeight==$row['modelHeight']-1){
                        $heightMatchMultiple=9;
                    }
                    elseif($userHeight==$row['modelHeight']+2 || $userHeight==$row['modelHeight']-2){
                        $heightMatchMultiple=8;
                    }
                    elseif($userHeight==$row['modelHeight']+3 || $userHeight==$row['modelHeight']-3){
                        $heightMatchMultiple=7;
                    }
                    else{
                        $heightMatchMultiple=1;
                    }
                }

                echo "Model Match Multiple: " . $heightMatchMultiple . "<br>";
            }
        }//end of if num rows 
        else {
            echo "No results to display.";
        }
    }//end of function

当我运行这个函数时,它返回heightMatchMultiple的else语句的值1而不是10,因为数据库中有一个高度为69的模型,这是我用作用户输入的。

我是否可以像我一样将+1或+2直接添加到$row‘’modelHeight‘变量中,或者是否有更好的方法来做到这一点。

编辑:有人问我在哪里初始化了变量$userHeight,所以我把它添加到了代码中。我尝试为$heightMatchMultiple=0创建全局变量,以使这些变量在我的matchValues函数中可用。这是正确的吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-24 13:35:33

$userHeight在哪里被初始化/传入?我认为你现在得到69的原因是因为没有设置$userHeight,因此默认情况下它得到的值是0,这意味着如果$row['modelHeight']是69,1将是正确的答案。

回答你真正的问题,实际上是关于操作顺序的:是的,你写的东西应该做我认为你正在努力实现的事情。然而,您可能应该添加括号,即使它们不是严格必要的,只是为了暗示您未来的自己,您确实打算以特定的顺序进行计算。

例如,而不是这样:

代码语言:javascript
代码运行次数:0
运行
复制
elseif($userHeight == $row[ 'modelHeight' ] + 1 || $userHeight == $row[ 'modelHeight' ] - 1)

你可以这样写:

代码语言:javascript
代码运行次数:0
运行
复制
elseif(($userHeight == ( $row[ 'modelHeight' ] + 1 )) || ( $userHeight == ( $row[ 'modelHeight' ] - 1)))

或者您可以使用abs()重写每个检查,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
elseif(abs($userHeight - $row['modelHeight']) == 1 )

这可以说是更具描述性的,因为你真正想说的是“如果差值是1”。

是的,您可以像在原始代码中一样使用+1和+2等,但您确实需要在某些时候设置或传入$userHeight变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33885996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档