本文共 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/