我和我的室友都在发展。。我正在通过浏览器测试我的脚本。。他通过CLI调用他的脚本,并试图说服我也通过CLI这样做。。"因为它不同"。。我看不出有什么不同,我认为这是不合逻辑的。。。。。所以除了http/tcp开销之外。。通过HTTP调用脚本和通过CLI调用脚本之间有什么本质区别吗?
HTTP
这些值可以作为GET或POST方法传递,它们将分别在php全局数组$_GET和$_POST中可用。
http://localhost/project/index.php?id=4
CLI
ID的值可由$_GET['id']
访问但在CLI模式下,可以将值作为参数传递,这些参数将在$argv数组中可用。
php /var/www/project/index.php 4
值可由$argv[1]
访问
在大多数环境中,cli版本不会加载相同的php.ini设置。这用于避免在嵌入式(mod_php)或守护程序(php-fm)版本中应用的限制。
例如,在cli模式下,不需要低memory_limit和max_execution_time。
这是cli模式在异步任务(可能是长任务和内存繁重的任务)方面的一大优点。
现在,对于测试应用程序,如果最终应用程序必须在http服务器(mod_php)或php守护进程(php-fpm)中运行,则在cli模式下测试应用程序是一个缺点,因为您的测试不会检测到大问题(比如达到内存限制时崩溃,或者在达到最大执行时间时没有响应,甚至之前出现任何其他超时(在http服务器或fastcgi协议中))。