在 PHP 中将 array_sum(string) 与整数进行比较


Comparing array_sum(string) to an integer in PHP

我在检查 PHPIDS/Monitor 中的 convertFromJSCharcode 函数时遇到了这行代码。

foreach ($charcode as $char) {
            $char = preg_replace('/'W0/s', '', $char);
            if (preg_match_all('/'d*[+-'/'* ]'d+/', $char, $matches)) {
                $match = preg_split('/('W?'d+)/', implode('', $matches[0]), null, PREG_SPLIT_DELIM_CAPTURE);
                if (array_sum($match) >= 20 && array_sum($match) <= 127) {
                    $converted .= chr(array_sum($match));
                }
            } elseif (!empty($char) && $char >= 20 && $char <= 127) {
                $converted .= chr($char);
            }
        }

如何将array_sum($match)与整数进行比较?我的理解是array_sum($match)是一根绳子。$cha r也是如此。

在本文档中,array_sum将返回一个数字(即整数或浮点数)。

查看array_sum文档:

array_sum()返回数组中值的总和。

[...]

返回值

以整数或浮点数形式返回值的总和。

根据

我的理解array_sum返回值

整数或浮点数

如果你有一个字符串,你可以强制转换它并转换为整数,比如(int)$match然后比较。