X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=framework%2Fmain%2Fclasses%2Flists%2Fclass_BaseList.php;h=edca181d6fa99913340a9ec8abb481fb5abd05f9;hb=d831713579377eaedd277b577dcd9c73040d0767;hp=c1ac982eb154c8381622ff828c8107b193bf856a;hpb=08578b5e2e37e31e45d24c17c01a6b8bc0abd53b;p=core.git diff --git a/framework/main/classes/lists/class_BaseList.php b/framework/main/classes/lists/class_BaseList.php index c1ac982e..edca181d 100644 --- a/framework/main/classes/lists/class_BaseList.php +++ b/framework/main/classes/lists/class_BaseList.php @@ -61,6 +61,14 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate */ private $listIndex = []; + /** + * Cached values from "expensive" method calls + */ + private $cache = [ + // Cached isValidHash() calls + 'is_valid' => [], + ]; + /** * Protected constructor * @@ -403,13 +411,13 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate if (empty($hash)) { // Throw IAE throw new InvalidArgumentException('Parameter "hash" is empty'); + } elseif (!isset($this->cache['is_valid'][$hash])) { + // Check it + $this->cache['is_valid'][$hash] = ((in_array($hash, $this->listIndex)) && (isset($this->listEntries[$hash]))); } - // Check it - $isValid = ((in_array($hash, $this->listIndex)) && (isset($this->listEntries[$hash]))); - // Return the result - return $isValid; + return $this->cache['is_valid'][$hash]; } /**