Php fwrite()错误:提供的参数不是有效的流资源。为什么?

Php fwrite()错误:提供的参数不是有效的流资源。为什么?,php,warnings,Php,Warnings,我有以下代码: $file = '/path/to/file.txt'; if (($fd = fopen($file, "a") !== false)) { fwrite($fd, 'message to be written' . "\n"); fclose($fd); } 为什么我会收到以下警告 fwrite(): supplied argument is not a valid stream resource fclose(): supplied argument i

我有以下代码:

$file = '/path/to/file.txt';

if (($fd = fopen($file, "a") !== false)) {
    fwrite($fd, 'message to be written' . "\n");
    fclose($fd);
}
为什么我会收到以下警告

fwrite(): supplied argument is not a valid stream resource
fclose(): supplied argument is not a valid stream resource

你的if陈述是错误的。试一试

if (($fd = fopen($file, "a")) !== false) {
因为你的那个像

$fd = fopen($file, "a") !== false

你的if陈述是错误的。试一试

if (($fd = fopen($file, "a")) !== false) {
因为你的那个像

$fd = fopen($file, "a") !== false

因为你有一个括号错误。守则应改为:

if (($fd = fopen($file, "a")) !== false) {
当前代码所做的是将
$fd
设置为将
fopen
返回值与
false
进行比较的结果,后者也是
false
(假设
fopen
成功)。实际上你有

if ($fd = false) {
这是不言自明的,也是可测试的(使用
var\u dump


故事的寓意:如果条件满足,则不要给
内的变量赋值。这不是1980年,也不是用C语言编程。只要说“不”,使核心可读;它会喜欢你的。

因为你有一个括号错误。守则应改为:

if (($fd = fopen($file, "a")) !== false) {
当前代码所做的是将
$fd
设置为将
fopen
返回值与
false
进行比较的结果,后者也是
false
(假设
fopen
成功)。实际上你有

if ($fd = false) {
这是不言自明的,也是可测试的(使用
var\u dump


故事的寓意:如果
条件满足,则不要给
内的变量赋值。这不是1980年,也不是用C语言编程。只要说“不”,使核心可读;它会因此而爱你。

Ups。。。我错过了。谢谢!不间断电源。。。我错过了。谢谢!