sách gpt4 ai đã đi

Lỗi PHP 7.2.25 != Lỗi?

In lại 作者:行者123 更新时间:2023-12-04 22:08:01 28 4
mua khóa gpt4 Nike

谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。

echo "phpversion() == " . phpversion() . "\n\n";

var_dump(FALSE);
var_dump(False);
var_dump(false);

echo "\n";
echo "(FALSE === false) == " . ((FALSE === false) ? "true" : "false") . "\n";
echo "(((bool)FALSE) === false) == " . ((((bool)FALSE) === false) ? "true" : "false") . "\n";
?>

我得到这个输出:
phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108445

int(0)
bool(false)
bool(false)

(FALSE === false) == false
(((bool)FALSE) === false) == true

我关心的原因是 fopen() 的文档说它返回 FALSE失败。但是,至少在这个 PHP 版本中,它返回了 SAI ,所以我的 if ($fh === FALSE)检查失败,让我觉得 fopen()成功了,即使它肯定失败了。

我的 friend 正在运行一个不同的版本(Ubuntu 上的 PHP 7.2.24),在那里,FALSE === false。如果 FALSE != false,我认为任何地方的一切都会爆炸,所以……到底是怎么回事?

1 Câu trả lời

为了上帝的爱,对我、我的问题以及我做过的一切投反对票。我还没有找出原因,但它在我自己构建的两个 PHP 扩展之一中:删除它们,它按预期工作:

phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108445

bool(false)
bool(false)
bool(false)

(FALSE === false) == true
(((bool)FALSE) === false) == true

我可能会添加有关我如何设法重新定义 的详细信息错误 在 PHP 扩展中;取决于他们有多尴尬。

biên tập:我仍在查看细节,但简短的版本是,我使用 SWIG 在 libmodbus 周围构建了一个包装器,及其 src/modbus.h已:
#ifndef FALSE
#define FALSE 0
#kết thúc nếu

...这并非不合理,但我懒惰地包含了 libmodbus 中的“所有内容”,而不是指定我想公开的单个函数,我猜这就是 FALSE 进入那里的原因。 (但是,作为 PHP 扩展部署的结果 .so 似乎不包含名称中带有 FALSE 的符号,所以......我仍在寻找。)

CHỈNH SỬA 2:是的,只要有一个 #define在您的 SWIG .i 中足以让 SWIG 将其定义为在 PHP 中使用的常量。 (这是有道理的。)

顺便说一下 SWIG documentation的部分这可能让我有点错误(让我告诉 SWIG 包含所有 libmodbus 的头文件而不是指定每个函数)是 “真正懒惰的人的 SWIG。” 看,当我看到一个看起来像这样写的部分时 对我来说,这就是我正在阅读的内容。

关于PHP 7.2.25 错误!= 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59187021/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com