簡體   English   中英

用於檢查值是否為int或float而不是PHP中的字符串的函數

[英]function to check if the value is int or float but not string in PHP

是否有任何內置函數來檢查值是否為數字,任何整數類型,例如int,float但不是字符串。 is_numeric對於“ 2”返回true。 我應該同時通過is_int和is_float進行檢查嗎?

$ a和$ b不是數字時,我想要的函數應返回“無效值”:

function myFunction($a, $b, $sign){}

本身並不是一個答案,但這太多了,無法發表評論:

function isFloatOrInt($var)
{
    $type = gettype($var);

    switch ($type) {
        case 'integer':
        case 'double':
            return true;
        case 'string':
            //check for number embedded in strings "1" "0.12"
            return preg_match('/^[0-9]+(?:\.[0-9]+)?$/', $var);
        default:
            return false;
}

如果您認為數字的字符串版本仍然是數字,則預匹配可以在此處很有用。

你說

但不是字符串

但這是否意味着此'string'或此'10'而不是例如10 也是數字的字符串?

可能有很多方法可以做到這一點,但是有一些極端的情況,所以這在很大程度上取決於您的需求。 例如, octet是給您一個數字0777還是指數12e4甚至十六進制0xf4c3b00c

is_numeric($value) && !is_string($value)

這就是我想要的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM