zoukankan      html  css  js  c++  java
  • 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;
    }

     

  • 相关阅读:
    BZOJ 1576 树剖+LCT
    CF1051D Bicolorings 递推
    CF938D Buy a Ticket dijkstra
    记一次创建svc代理失败
    K8S中Service
    K8S中的Job和CronJob
    K8S中DaemonSet
    Linux expect介绍和用法
    Java根据余弦定理计算文本相似度
    Python和Sublime的整合
  • 原文地址:https://www.cnblogs.com/huhu1020387597/p/11211503.html
Copyright © 2011-2022 走看看