diff options
Diffstat (limited to 'vendor/smarty/smarty/libs/plugins/modifier.count.php')
-rw-r--r-- | vendor/smarty/smarty/libs/plugins/modifier.count.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.count.php b/vendor/smarty/smarty/libs/plugins/modifier.count.php new file mode 100644 index 000000000..ca35fc115 --- /dev/null +++ b/vendor/smarty/smarty/libs/plugins/modifier.count.php @@ -0,0 +1,36 @@ +<?php +/** + * Smarty plugin + * + * @package Smarty + * @subpackage PluginsModifier + */ +/** + * Smarty count modifier plugin + * Type: modifier + * Name: count + * Purpose: counts all elements in an array or in a Countable object + * Input: + * - Countable|array: array or object to count + * - mode: int defaults to 0 for normal count mode, if set to 1 counts recursive + * + * @param mixed $arrayOrObject input array/object + * @param int $mode count mode + * + * @return int + */ +function smarty_modifier_count($arrayOrObject, $mode = 0) +{ + /* + * @see https://www.php.net/count + * > Prior to PHP 8.0.0, if the parameter was neither an array nor an object that implements the Countable interface, + * > 1 would be returned, unless value was null, in which case 0 would be returned. + */ + + if ($arrayOrObject instanceof Countable || is_array($arrayOrObject)) { + return count($arrayOrObject, (int) $mode); + } elseif ($arrayOrObject === null) { + return 0; + } + return 1; +} |