From: Roland Häder Date: Sat, 25 Feb 2023 06:51:20 +0000 (+0100) Subject: Continued: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=47b842ff4fa6028b3b2bcea40278aad559390e1e;p=core.git Continued: - na, I don't like these multiple-type variables from PHP ... - it surely later needs rewrite to array-only return values or exceptions in case of errors - also fixed issue here --- diff --git a/framework/main/classes/criteria/search/class_SearchCriteria.php b/framework/main/classes/criteria/search/class_SearchCriteria.php index 155916d9..d1c8c91c 100644 --- a/framework/main/classes/criteria/search/class_SearchCriteria.php +++ b/framework/main/classes/criteria/search/class_SearchCriteria.php @@ -169,7 +169,7 @@ class SearchCriteria extends BaseCriteria implements LocalSearchCriteria { } // "Explode" value - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SEARCH-CRITERIA: Invoking explode(%s,value[]=%s) ...', $separator, gettype($value))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SEARCH-CRITERIA: Invoking explode("%s",value[]=%s) ...', $separator, gettype($value))); $valueArray = explode($separator, $value); /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SEARCH-CRITERIA: valueArray()=%d', count($valueArray))); @@ -199,13 +199,13 @@ class SearchCriteria extends BaseCriteria implements LocalSearchCriteria { // Is an array returned? /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SEARCH-CRITERIA: searchChoice[]=%s', gettype($searchChoice))); - if (!is_array($searchChoice)) { + if (!is_array($searchChoice) && !is_bool($searchChoice)) { // Should not happen throw new UnexpectedValueException(sprintf('searchChoice[]=%s is unexpected', gettype($searchChoice)), FrameworkInterface::EXCEPTION_UNEXPECTED_VALUE); } // 'choice' check - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SEARCH-CRITERIA: searchChoice(%d)=%s', count($searchChoice), print_r($searchChoice, true))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SEARCH-CRITERIA: searchChoice[]=%s', gettype($searchChoice))); if ((is_array($searchChoice)) && (count($valueArray) == 1)) { // $value is a single-search value, so use in_[] $isMatching = ((($isMatching === true) || (($searchDefault === false) && (!is_null($value)))) && (in_array($value, $searchChoice))); @@ -237,7 +237,7 @@ class SearchCriteria extends BaseCriteria implements LocalSearchCriteria { /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SEARCH-CRITERIA: isMatching=%d - AFTER!', intval($isMatching))); } else { // Choice-match is false - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SEARCH-CRITERIA: key=%s[],searchChoice()=%d,value[%s]=%s,isMatching=%d - FALSE-MATCH', $key, count($searchChoice), gettype($value), $value, intval($isMatching))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SEARCH-CRITERIA: key=%s[],searchChoice[]=%s,value[%s]=%s,isMatching=%d - FALSE-MATCH', $key, gettype($searchChoice), gettype($value), $value, intval($isMatching))); } // Get 'exclude' search value