我有一个奇怪的问题。只有在可执行的PHP脚本中才会发生此错误,我不知道为什么
警告:fwrite()期望参数1为资源,字符串为
我有以下示例:
-rwxr-xr-x 1 root root 87 Sep 10 16:55 test*
-rw-r--r-- 1 root root 33 Sep 10 17:10 test.php
文件./test是:
#!/usr/bin/php -q
<?php
fwrite(STDERR, "test\n");
和文件test.php是(完全相同,只是缺少shebang):
<?php
fwrite(STDERR, "test\n");
我在那台机器上做了一些测试,它的行为真的很奇怪:
# ./test
<br />
<b>Warning</b>: fwrite() expects parameter 1 to be resource, string given
# php -q test.php
test
# php -r 'fwrite(STDERR, "test\n");'
test
有谁知道为什么fwrite到STDERR在可执行的php文件中不起作用?
PHP 5.4.28 (cli) (built: May 19 2014 15:39:12)
答案 0 :(得分:1)
当我使用shebang #!/usr/local/bin/php
时,错误消失了。有道理,因为php是从源代码编译的。
但我仍然不明白为什么会发生这种情况。我试图用错误的&#39;来研究phpinfo。 shebang和我仍然以PHP Version 5.4.28
为版本,所以没有多次安装。