#!/ usr/bin/env是否需要从命令行运行PHP?

Jas*_*vis 27 php command-line command-line-interface

通常,当我看到要从命令行运行的PHP时,它会在这个#!/usr/bin/env php文件的顶部有这一行...

#!/usr/bin/env php
<?php
    // code
?>
Run Code Online (Sandbox Code Playgroud)

我想知道这是仅仅意味着文件在Linux/Unix系统上运行还是在Windows上运行时需要?

Pat*_*her 29

自动检测脚本类型需要"hashbang"行.它实现了这种用法:

[pfisher ~]$ chmod +x run-me.php
[pfisher ~]$ run-me.php
Run Code Online (Sandbox Code Playgroud)

如果将文件名作为参数传递给php解释器,则不需要该行,如下所示:

[pfisher ~]$ php run-me.php
Run Code Online (Sandbox Code Playgroud)

  • 另外值得一提的是,多亏了这一行,您可以重命名脚本文件,使其不包含扩展名.这样你就可以在不知道它是什么语言的情况下执行它:`./ run-me`. (4认同)
  • 当然,这仅适用于*nix.在Windows上,你必须从命令行使用`> php run-me.php`. (3认同)