即使将常量赋值给变量 a 并将其放在函数外部,每次调用函数时也不需要重新创建它。这是因为常量在脚本加载时已经被定义,它们是在编译时被处理的,而不是在运行时。因此,在函数内部或外部使用常量都不会影响性能。

例如,以下代码中 ALLOWED_DOMAINS 常量在脚本加载时就被定义,并在 getTopHost 函数中被使用。

const ALLOWED_DOMAINS = ['政务', '公益', 'gov', 'org', 'ac', 'mil', 'net', 'edu', 'com', 'bj', 'tj', 'sh', 'cq', 'he', 'sx', 'nm', 'ln', 'jl', 'hl', 'js', 'zj', 'ah', 'fj', 'jx', 'sd', 'ha', 'hb', 'hn', 'gd', 'gx', 'hi', 'sc', 'gz', 'yn', 'xz', 'sn', 'gs', 'qh', 'nx', 'xj', 'tw', 'hk', 'mo'];

function getTopHost(string $url): string
{
    $url = strtolower($url);
    $hosts = parse_url($url);
    $host = $hosts['host'];
    $data = explode('.', $host);
    $n = count($data);

    if ($n > 2 && in_array(end($data) - 1, ALLOWED_DOMAINS, true) && end($data) === 'cn') {
        $host = implode('.', [end($data) - 2, end($data) - 1, end($data)]);
    } else {
        $host = implode('.', [end($data) - 1, end($data)]);
    }

    return $host;
}

无论 getTopHost 函数被调用多少次,ALLOWED_DOMAINS 常量的值都不会被重新计算或创建,因为它在脚本加载时就已经被定义并存储在内存中。

因此,在 PHP 中,将常量赋值给变量并置于函数外部,不会对函数的性能造成影响。

PHP 中 const 变量的性能优化: 详解常量与函数调用的关系

原文地址: https://www.cveoy.top/t/topic/lNH2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录