PHP類型判斷


1》常規類型判斷

isset(): //變量是否已經聲明

empty(): //變量是否為空,等於說:”"、0、”0″、NULL、FALSE、array()、var $var、未定義;以及沒有任何屬性的對象都將被認為是空的,如果 var 為空,則返回 TRUE。

defined()://常量是否已經定義 define()

is_numeric ( mixed var ): //檢測變量是 否為數字或數字字符串

is_bool(): // 檢測變量是否是布爾型

is_float(): // 檢測變量是否是浮點型 和is_double,is_real()都一樣的用法

is_int(): // 檢測變量是否是整數is_integer() 一樣的 用法

is_string(): // 檢測變量是否是字符串

is_object(): // 檢測變量是否是一個對象

is_array(): // 檢測變量是否是數組

is_null(): // 檢測變量是否為 NULL 值是否是NULL大小寫敏感

2》全局方法和對象內方法判斷

全局方法判斷:bool function_exists ( string $function_name )

對象內部方法判斷:bool method_exists ( mixed $object , string $method_name )

3》對象實列判斷 instanceof

//以下是匿名函數定義
$value= function($path) use (&$deleteDirectory) {
    $resource = opendir($path);
    while (($item = readdir($resource)) !== false) {
        if ($item !== "." && $item !== "..") {
            if (is_dir($path . "/" . $item)) {
                $deleteDirectory($path . "/" . $item);
            } else {
                unlink($path . "/" . $item);
            }
        }
    }
    closedir($resource);
    rmdir($path);
};
判斷$value是不是一個匿名function閉包
if($value instanceof \Closure) {
}
判斷$value是不是一個Model類實例 
if($value instanceof Model) { 
}

 

4>判斷一個數組是關聯數組,還是索引數組

  關聯數組是鍵值對形式數據,索引數組是按照下標訪問。思路是取出數組的keys,查看是數字還是字符串

/**
 * 判斷數組是否為索引數組
 */
function is_indexed_array($arr)
{
    if (is_array($arr)) {
        return count(array_filter(array_keys($arr), 'is_string')) === 0;
    }
    return false;
}
/**
 * 判斷數組是否為連續的索引數組
 * 以下這種索引數組為非連續索引數組
 * [
 *   0 => 'a',
 *   2 => 'b',
 *   3 => 'c',
 *   5 => 'd',
 * ]
 */
function is_continuous_indexed_array($arr)
{
    if (is_array($arr)) {
        $keys = array_keys($arr);
        return $keys == array_keys($keys);
    }
    return false;
}
/**
 * 判斷數組是否為關聯數組
 */
function is_assoc_array($arr)
{
    if (is_array($arr)) {
        // return !is_indexed_array($arr);
        return count(array_filter(array_keys($arr), 'is_string')) === count($arr);
    }
    return false;
}
/**
 * 判斷數組是否為混合數組
 */
function is_mixed_array($arr)
{
    if (is_array($arr)) {
        $count = count(array_filter(array_keys($arr), 'is_string'));
        return $count !== 0 && $count !== count($arr);
    }
    return false;
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM