相关疑难解决方法(0)

测试变量是否是PHP中的数字的正确方法是什么?

当我从数据库中获取数据时,即使它具有数字值,结果也是一个字符串.这就是我的意思:

// An integer
$int=10;
if(is_int($int)) // Returns true
...

// A string
$int='10';
if(is_int($int)) // Returns false
...
Run Code Online (Sandbox Code Playgroud)

我希望这两个都返回真实.

php integer

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

检查变量是否为数字的最佳方法

我多次遇到这个问题,现在我正在考虑以下问题的最佳解决方案:

public function dumpID($id){
    var_dump($id);
}

dump("5");
Run Code Online (Sandbox Code Playgroud)

会转储string "5".数值通常作为字符串赋予函数.我经常在Symfony 2中面对这个问题,但在其他原生的PHP项目中也是如此.

在这种情况下,检查此ID是否为数字将失败

public function dumpID($id){
    if(is_int($id)){
        var_dump($id);
    } else { // throw error }
}

dump("5"); // Would fail
Run Code Online (Sandbox Code Playgroud)

所以你可以说casting to int would solve this problem.

public function dumpID($id){
    $id = (int)$id;
    if(is_int($id)){
        var_dump($id);
    } else { // throw error }
}

dump("5"); // Would var_dump the $id
Run Code Online (Sandbox Code Playgroud)

但由于PHP的以下行为,这是不正确的.

$string = "test";
$string = (int)$string;
var_dump($string); // Would give out the integer value 0
Run Code Online (Sandbox Code Playgroud)

所以

public function …
Run Code Online (Sandbox Code Playgroud)

php

-3
推荐指数
1
解决办法
544
查看次数

标签 统计

php ×2

integer ×1