为变量赋值的语法不正确

时间:2014-09-04 04:50:16

标签: php

有4个用户(银牌,金牌,白金,管理员) 银的最大范围是5,金是10,铂是15,管理员是20

这有什么问题?

$maxrange = ($data['range'] > 1483200000) ? 20 : ($data['range'] > 1451600000 && $data['range'] < 1483200000) ? 15 : ($data['range'] > 0 ? $web['gold_range'] : $web['silver_range']);

白银,黄金,白金工作正常,但对于admin $ maxrange变量持有值为15,而它应该持有20

语法有什么不对吗?有人可以帮忙吗...

另外... range实际上是数据库中显示日期的int(255)类型。 1483200001是31-12-2016 16:00。如何解码int到日期/时间?

3 个答案:

答案 0 :(得分:0)

在开始应用代码之前,您应该了解代码的作用

    if($data['range'] > 1483200000) 
        $maxrange = 20;
    elseif(($data['range'] < 1483200000) && ($data['range'] > 1451600000))
        $maxrange = 15;
    else {
            // If $web['gold_range'] or $web['silver_range'] are empty or not set,
            // this portion will fail/produce an empty result
            $maxrange = ($data['range'] > 0)? $web['gold_range'] : $web['silver_range'];
        }

    echo $maxrange;

顺便说一下,这不是一个答案,因为它会破坏你的代码。如果你得到的$maxrange为15,它应该是20,那么可能会发生以下两种情况之一:

1)您已经设置了$maxrange(在一个循环或其他内容中)并且您的输入不符合您的任何条件,因此它将保留最后一个设置值$maxrange

2)您的输入符合此(($data['range'] > 1451600000) && ($data['range'] < 1483200000))条件

您的日期格式化为:

date('d-m-Y H:i','1483200000');

您可以通过检查php website上的格式选项来格式化日期。

答案 1 :(得分:0)

if(data['range']>1483200000)
$maxrange=20;
else{
    if($data['range'] > 1451600000 && $data['range'] < 1483200000)
            $maxrange=15;
        else{
            if($data['range'] > 0)
                $maxrange=$web['gold_range']; 
            else
                $maxrange=$web['silver_range'];
        }
}

答案 2 :(得分:0)

将int val转换为日期

$intVal = '1483200001';

$dateTime = date('Y-m-d H:i:s', strtotime($intVal));