gpt4 book ai didi

PHP_OS - 它是否包含构建或运行的操作系统?

转载 作者:可可西里 更新时间:2023-11-01 00:24:19 26 4
gpt4 key购买 nike

我现在搜索了很长时间,但我找不到这个问题的明确答案,即常量 PHP_OS 是否包含构建或运行 php 的操作系统。

php_uname ( http://php.net/manual/de/function.php-uname.php) 的 php 文档指出:“对于仅操作系统的名称,请考虑使用 PHP_OS 常量,但请记住,此常量将包含 PHP 构建于 的操作系统。”

但是,在同一页面上有一条 2006 年的评论指出:“与上一条相反,PHP_OS 确实显示了 PHP 当前运行的操作系统,[...] 这与构建 PHP 的系统无关。”

关于这个问题,我在网上找不到任何明确的答案(关于 php_uname 和 PHP_OS 的话题大多只涵盖操作系统检测和类似主题)。现在是什么 - 文档还是评论?

pear-core 包使用 PHP_OS 来确定它是在类 Unix 系统上还是在 Windows 上运行,所以可以安全地假设文档确实是错误的吗?

最佳答案

我查看了源代码。配置脚本执行此操作:

PHP_OS=`uname | xargs`
AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])

然后 main.c 这样做:

char *php_os;
php_os=PHP_OS;
REGISTER_MAIN_STRINGL_CONSTANT("PHP_OS", php_os, strlen(php_os), CONST_PERSISTENT | CONST_CS);

这意味着PHP中的PHP_OS就是C代码中的php_os,也就是configure脚本构造的头文件#defined,通过在配置时运行 uname 来确定。

所以,这是您构建的系统,而不是您运行的系统。

有一些针对 Windows 的特殊代码:main.cphp_os 设置为 "WINNT" 如果 WIN32 已定义。但是,同样,这是在构建时,而不是在运行时,即使您设法在 Unix 上编译并在 Windows 上运行,反之亦然。

关于PHP_OS - 它是否包含构建或运行的操作系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10348499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com