使用 Simpletest PHP“PHP 单元测试”,收到错误消息“已弃用:不推荐通过引用分配 new 的返回值”
我刚开始使用 simpletest: http://www.simpletest.org/ for PHP 并且正在使用 PHP 5.2* 在我的服务器上,当我尝试根据他们的演示设置初始测试脚本时,我得到一个充满错误的页面,如下所示...我不确定这是否与 simpletest 不兼容有关对于 PHP 5.* 或问题是什么,任何见解都值得赞赏..似乎我仍然可以使用该库,因为它返回错误下方似乎合适的内容,但我想了解这一点,以便我可以修复它..谢谢
这是我用来调用 simpletest 函数的 php 代码的示例
<?php
require_once('C:/wamp/www/external/simpletest/simpletest/autorun.php');
class TestOfLogging extends UnitTestCase {
function testFirstLogMessagesCreatesFileIfNonexistent() {
@unlink(dirname(__FILE__) . '/../temp/test.log');
$log = new Log(dirname(__FILE__) . '/../temp/test.log');
$log->message('Should write this to a file');
$this->assertTrue(file_exists(dirname(__FILE__) . '/../temp/test.log'));
}
}
?>
以及我得到的错误:
Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\external\simpletest\simpletest\unit_tester.php on line 74
Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\external\simpletest\simpletest\unit_tester.php on line 89
I am new to using simpletest: http://www.simpletest.org/ for PHP and am using PHP 5.2* on my server, when I try to set up an initial test script based on their demo, I get a page full of errors like the one below... I am not sure if this is something to do with simpletest not being compatible with PHP 5.* or what the issue is, any insight is appreciated.. it seems that I can still use the library as it returns what seems to be appropriate below the errors, but I would like to understand this so I can fix it.. thanks
Here is an example of the php code I am using to call a simpletest function
<?php
require_once('C:/wamp/www/external/simpletest/simpletest/autorun.php');
class TestOfLogging extends UnitTestCase {
function testFirstLogMessagesCreatesFileIfNonexistent() {
@unlink(dirname(__FILE__) . '/../temp/test.log');
$log = new Log(dirname(__FILE__) . '/../temp/test.log');
$log->message('Should write this to a file');
$this->assertTrue(file_exists(dirname(__FILE__) . '/../temp/test.log'));
}
}
?>
And the error I get:
Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\external\simpletest\simpletest\unit_tester.php on line 74
Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\external\simpletest\simpletest\unit_tester.php on line 89
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
“已弃用”意味着一些老式的东西,可能不会被未来版本的 php 支持。它不应该是有害的,但应该由 simpletest 开发人员处理。您下载了最新版本的 simpletest 吗?
如果你想了解的话,请看一下unit_tester.php的第74行和第89行。
"Deprecated" means that something old-fashion, that possibly won't be supported by future versions of php is done. It should not be harmful, but should be taken care of by simpletest developers. Did you download the latest version of simpletest?
If you want to understand, take a look at unit_tester.php on lines 74 and 89.
不必关闭所有错误,只需关闭弃用警告。另一种方法是对所有简单的测试文件进行查找和替换:查找“&new”并替换为“new”。
new
通过引用 (&new
) 仅为 在 PHP5.3 中已弃用,因此希望在下一个 SimpleTest 版本中能够修复该问题。Rather than switching all errors off, just switch off deprecation warnings. The alternative is to do a find-and-replace on all the simpletest files: find "&new" and replace with "new".
new
by reference (&new
) was only deprecated in PHP5.3, so hopefully that'll be fixed in the next SimpleTest release.您确定在运行单元测试时使用的是 5.2,而不是 5.3?我似乎记得在 5.3 下运行 PEAR 包时看到这些错误。
Are you sure you're using 5.2, and not 5.3, when running the unit tests? I seem to remember seeing these errors with PEAR packages running under 5.3.
我在学习 simpletest 教程时也遇到了这个问题。
为了让这些消息消失,我将
php.ini
文件中的display_errors = On
设置更改为display_errors = Off
。I also had this problem while going through the simpletest tutorial.
To make these messages go away, I changed the
display_errors = On
setting in myphp.ini
file todisplay_errors = Off
.