php - 是否有内置的 PHP 函数来检查给定的字符串是否是保留关键字?
问题描述
我正在看这个:https ://www.php.net/manual/en/reserved.php 我已经进行了大量搜索查询,例如:“php 确定字符串是否为保留关键字”。
我什么也没找到,我开始严重出汗。请不要告诉我,我将不得不编写一个复杂的脚本来定期为所有这些不同类型的保留关键字抓取 PHP 手册并建立我自己的数据库!
请让有一个很好,简单的功能来简单地检查:
var_dump(is_reserved_php_keyword('if'));
它给出了真/假。
解决方案
我对 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;
}
这有几个优点:
它不需要维护列表,因为 PHP 自己的解析器会说明什么是有效的。
理解起来要简单得多。
推荐阅读
- python - recursively go through list to calculate the percentage change between two items at every n elements
- vue.js - strange behavior when trying to re-render data inside slot in vue
- docker - In which folder is data of volumes in Docker Windows stored?
- git - Jenkins pipeline fails git clone using sshagent plugin?
- angular - application Error net::err_proxy_connection_faild (http://192.168.43.162)
- java - 迭代流时出现 NullPointerException
- android - How I can show my android constrain layout chain icon hints, I did not show this feature in my layout. I am using android version 3.5.2
- python - 如何在keras的LSTM自动编码器中获取middel层的输出
- css - 在 CSS 中使用 Flex 属性集中文本
- vue.js - Life cycle Hook in vueJs