在 bash 脚本中包含和添加文件以及运行 cron 作业之间的 PHP 区别


php difference between include and adding files in bash script and runing cron job

我有一个文件1.php。在这个文件中,我有 $something_i_need,然后在 file2 中包含 file1.php.php 并回显 $something_i_need。到目前为止,一切正常。但是如果我使用一个小的 bash 脚本呢

#!/bin/sh
 /web/cgi-bin/php5 "$HOME/html/file1.php"
 /web/cgi-bin/php5 "$HOME/html/file2.php".....

如果我在 file2 中回显 $something_i_need.php它不起作用。它不记得第一个文件中的内容吗?

我为此烦恼,因为我有几个像 file2 这样的文件.php而且我不想包含 file1.php在我看来,女巫会在每个文件中(如果我错了,请纠正我)使脚本工作更长时间并使用更多资源。

有没有办法运行 file1.php一旦记住其中的内容并在多个文件中使用它,这样它就会尽可能流畅(我每隔几分钟运行一次 cron 作业,所以我希望它很轻)

我会将所有文件包含在一个组合脚本中。如果任务被划分为逻辑子例程,请在函数或类中执行,PHP 会在您之后收集垃圾并释放内存。如果太难,您可以随时从第一部分unset未使用的变量,然后再前进到第二部分。这不应该是性能杀手。

PHP 是一种脚本语言。运行脚本后,它将执行任何您想要的操作,然后完成。这适用于在 Web 服务器上和通过命令行使用 PHP。

所以一旦file1.php运行,它就完成了。没有空间来"存储"任何变量,因此file2.php无法知道file1.php所做的任何事情。

正如您已经说过的,您可以通过在所有file2.php中包含file1.php来解决您的问题。或者想出一个同时包含file1.phpfile2.php的解决方案,所以一切都只执行一次。