首页 > 解决方案 > 是否有内置的 PHP 函数来检查给定的字符串是否是保留关键字?

问题描述

我正在看这个:https ://www.php.net/manual/en/reserved.php 我已经进行了大量搜索查询,例如:“php 确定字符串是否为保留关键字”。

我什么也没找到,我开始严重出汗。请不要告诉我,我将不得不编写一个复杂的脚本来定期为所有这些不同类型的保留关键字抓取 PHP 手册并建立我自己的数据库!

让有一个很好,简单的功能来简单地检查:

var_dump(is_reserved_php_keyword('if'));

它给出了真/假。

标签: phpreserved-words

解决方案


我对 Andrew 采取了不同的方式,而是让 PHP 弄清楚而不是硬编码列表。

function isPhpKeyword($testString) {
    // First check it's actually a word and not an expression/number
    if (!preg_match('/^[a-z]+$/i', $testString)) {
        return false;
    }
    $tokenised = token_get_all('<?php ' . $testString . '; ?>');
    // tokenised[0] = opening PHP tag, tokenised[1] = our test string
    return reset($tokenised[1]) !== T_STRING;
}

https://3v4l.org/WA6dr

这有几个优点:

  1. 它不需要维护列表,因为 PHP 自己的解析器会说明什么是有效的。

  2. 理解起来要简单得多。


推荐阅读