php .os,PHP_OS – 它包含它构建或运行的操作系统吗?

标签:php

我现在搜索了很长一段时间,但是我找不到问题的明确答案,因为常量PHP_OS包含OS构建或运行的OS.

php_uname(http://php.net/manual/de/function.php-uname.php)的php文档说明:

“对于操作系统的名称,请考虑使用PHP_OS常量,但请记住,此常量将包含PHP构建的操作系统.”

但是,在同一页面上有一条2006年的评论说明:

“与上一篇文章相反,PHP_OS确实显示当前运行的PHP PHP,[…]这与PHP构建的系统无关.”

我无法在网上找到任何关于这个问题的明确答案(topis关于php_uname和PHP_OS主要只涉及os检测和类似主题).现在是什么 – 文档或评论?

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

解决方法:

我看了一下源代码. configure脚本执行此操作:

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有一些特殊的代码:如果定义了WIN32,main.c将php_os设置为“WINNT”.但是,同样,这是在构建时,而不是在运行时,即使您设法在Unix上编译并在Windows上运行,反之亦然.

标签:php

来源: https://codeday.me/bug/20190729/1573446.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值