<p>PHP 没有 --antigravity 命令行参数,运行会报“Unknown option”错误;该参数是玩笑或项目自定义逻辑,需检查 $argv 解析代码,正确透传应使用 php script.php -- --antigravity。</p>

PHP 本身没有 “Antigravity” 命令行参数——这是个不存在的内置功能,也不是 PHP CLI 的合法选项。如果你在文档、报错或脚本中看到 --antigravity,它要么是玩笑(源自 Python 的著名彩蛋 import antigravity),要么是某第三方工具/自定义脚本硬编码的占位参数。
为什么运行 php --antigravity 会报错
PHP 解析命令行参数时只识别其原生支持的开关(如 -v、-S、-r、--ini 等)。遇到未知参数会直接终止并输出:
Unknown option --antigravity
这不是配置问题,也不是版本差异,而是 PHP 解释器根本不认识这个字符串。
- PHP 8.0+ 和 7.x 行为一致:拒绝未注册的长选项
-
php -h输出的列表里永远不包含--antigravity - 即使你用
php -d或php -c预加载扩展,也无法“注入”新 CLI 参数
如果你真在某个项目里看到了 --antigravity
那大概率是项目自己解析了 $argv,把该参数当作业务标识符使用——和 PHP 无关,纯属应用层约定。
立即学习“PHP免费学习笔记(深入)”;
- 检查入口脚本(如
bin/console)是否手动遍历$argv并做了if (in_array('--antigravity', $argv)) { ... } - 搜索项目代码库:
grep -r "antigravity" . --include="*.php" - 这种写法常见于 Symfony Console、Laravel Artisan 的自定义命令中,但属于开发者自由约定,无标准语义
想安全传递自定义参数给 PHP 脚本?用这几种方式
PHP CLI 允许将任意参数透传给脚本本身(只要前面没被 PHP 自己消费掉):
- 用
--显式分隔:执行php script.php -- --antigravity --mode=hover,此时$argv[2]就是--antigravity - 避免与 PHP 内置参数冲突:别用
-v、-i这类单字母选项做自定义,容易被提前截获 - 在脚本里用
array_slice($argv, 1)或更健壮的getopt()/symfony/console解析 - 注意 Windows 下 CMD 对
=符号的转义问题,建议改用空格分隔:--mode hover
真正需要关注的不是“怎么启用反重力”,而是确认参数到底被谁消费——PHP 解释器?Web 服务器?还是你自己的 index.php?漏掉这一层判断,所有调试都会跑偏。



















