相关疑难解决方法(0)

意外转换为布尔值?

鉴于此输入:http://example.com/item.php?room = 248&supply_id = 18823,以下2个块应该产生相同的结果.他们为什么不呢?除了咖啡,我还想念什么?

该块给出了预期值:

if (isset($_GET['supply_id']) && isset($_GET['room'])) {
    $id=validkey($_GET['supply_id']); //18823
    $room=validkey($_GET['room']); //248
    $arr=array('s'=>$id,'r'=>$room); //s=>18823, r=>248
}
Run Code Online (Sandbox Code Playgroud)

但如果我一步完成检查和分配,$ id最终会等于1而不是18823.为什么?

if (isset($_GET['supply_id']) && isset($_GET['room'])) {
    if($id=validkey($_GET['supply_id']) && $room=validkey($_GET['room'])) 
        $arr=array('s'=>$id",'r'=>$room); //s=>1, r=>248
}
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的功能:

function validkey($value){
    if(is_scalar($value)){
        $value=(int)$value;
        return ($value>0) ? $value : false;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

php syntax php-5.3

4
推荐指数
1
解决办法
153
查看次数

有条件的分配,为什么它不起作用?

这个简单的条件赋值(是的,不幸的是我喜欢它!)不起作用.什么是范围$x$i变量?

if($x = $s->getXAxis() && ($i = array_search($x, $this->xAxis)) !== false) // 88
   $s->xAxis = $i;                                                         // 89
Run Code Online (Sandbox Code Playgroud)

我有:

注意:未定义的变量:第88行的x.

php conditional if-statement variable-assignment

1
推荐指数
1
解决办法
133
查看次数