PHP字符串与整型比较大小

PHP字符串与整型比较大小,是否可以?会不会计算出差值?   答案:肯定的,因为PHP是弱类型语言。


背景:redis的string类型,存储时间戳,知道redis的string类型存储的value值是字符串型,取出来时肯定也是字符串型。

当前时间戳   -  redis存储的时间戳  = 时间差    (用来比较游戏时长的合法性)

存储游戏开始时间:

<?php
header("Content-type:text/html;charset=utf-8");
/*
*Function :setex.php;
*author  : 奔跑吧笨笨;
*date    : 2018/5/18;
*Info    :
*/
//实例化redis对象
$redis = new Redis();
$redis->connect('127.0.0.1',6379);

$time = time();
$key = 'test_data_type';
$failure_time = 30;
$res = $redis->setex($key,$failure_time,$time);

if($res){
    echo "成功".PHP_EOL;
    var_dump($res);die;
}else{
    echo "失败".PHP_EOL;
    var_dump($res);die;
} 

检验游戏时间的合法性 

<?php
header("Content-type:text/html;charset=utf-8");
/*
*Function :get.php;
*author  :奔跑吧笨笨;
*date    : 2018/5/18;
*Info    :
*/
//实例化redis对象
$redis = new Redis();
$redis->connect('127.0.0.1',6379);

$key = 'test_data_type';

$data = $redis->get($key);

var_dump($data);
echo '开始时间:'.$data.PHP_EOL;

$time = time();

var_dump($time);
echo '当前时间:'.$time.PHP_EOL;

$val_time = $time - $data;
var_dump($val_time);
echo '时间差:'.$val_time.PHP_EOL;

数据类型的转换:

一、//实例化redis对象
$redis = new Redis();
$redis->connect('127.0.0.1',6379);

$key = 'test_data_type';

$data = (int)$redis->get($key);          添加(int) 进行类型的强制转换

var_dump($data);
echo '开始时间:'.$data.PHP_EOL;
二、函数  intval
$data = '666six';
$a = intval($data);
var_dump($a);die;      int(666)
三、直观感受
$data = '666six';

$num = 555;

$c = $data - $num;

var_dump($c);


综上所述,PHP是弱类型语言,所以,字符串与整型值比较,字符串先转为整数然后比较,不必要担心值类型不一样,导致结果的错乱。


我为人人,人人为我;美美与共,天下大同;


猜你喜欢

转载自blog.csdn.net/qq_37837134/article/details/80369552