博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断函数入参为空
阅读量:4185 次
发布时间:2019-05-26

本文共 1431 字,大约阅读时间需要 4 分钟。

public static function isFieldsEmpty($arrFields = array()) {        $traceList = debug_backtrace();        array_shift($traceList);        if (empty($traceList)) {            log("ERROR no caller. backtrace list:" . json_encode(debug_backtrace()));            return false;        }        $callTrace = $traceList[0];        $callRef = new ReflectionClass($callTrace['class']);        $method = $callRef->getMethod($callTrace['function']);        $objParams = $method->getParameters();        $arrInput = array();        foreach ($objParams as $i => $objParam) {            $arrInput[$objParam->name] = $callTrace['args'][$i];        }        $emptyFieldList = array();        foreach ($arrInput as $paramName => $paramValue) {            if (empty($arrFields) || in_array($paramName, $arrFields)) {                if (empty($paramValue)) {                    $emptyFieldList[] = $paramName;                }            }        }        if (empty($emptyFieldList)) {            return false;        } else {            $warningStr = "class " . $callTrace['class'] . " method" . $callTrace['method'] . " param error. fields:";            $warningStr .= json_encode($emptyFieldList);            log($warningStr);            return true;        }    }class A {    public static function getVal($a, $b, $c, $d) {        if (Kidtutor_Util_Valid::isFieldsEmpty(array('a'))) {            return false;        }    }}A::getVal(0, 0, 0, 1)

 

转载地址:http://exuoi.baihongyu.com/

你可能感兴趣的文章
各种IO模型,一篇打尽
查看>>
finalize() 原理
查看>>
Mysql 锁
查看>>
详解 MySql InnoDB 中意向锁的作用
查看>>
论 MySql InnoDB 如何通过插入意向锁控制并发插入
查看>>
详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)
查看>>
Mysql 锁的测试
查看>>
BeanPostProcessor的五大接口
查看>>
promotion failed和concurrent mode failure
查看>>
垃圾回收器学习之Full GC和CMS GC的区别
查看>>
Java JUnit 单元测试小结
查看>>
volatile关键字解析
查看>>
nginx upstream failover 容错机制
查看>>
java中,创建子类对象时,父类对象会也被一起创建么?
查看>>
nginx配置 -- 让匹配路径不作为文件目录的一部分
查看>>
Redis为什么是单线程的?
查看>>
Treiber Stack介绍
查看>>
FutureTask源码解读
查看>>
Redis架构之防雪崩设计:网站不宕机背后的兵法
查看>>
使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重
查看>>