是否有可能忽略PHP中的致命错误? - php

我了解“致命错误”一词的重要性,但是我想编写一个这样的测试类(令人讨厌地简化):

class tester {

    function execute() {

        if( @$this->tryit() === true ) return true;
        return false;

    }

    function tryit() {

        $doesntexist = new noobject();
        return true;

    }

}

实际上,我会有一个Test父类,然后类将对其进行扩展,并包含带有一堆测试的一堆方法。父类将定义execute,它将仅运行子类中的每个方法(当然不包括execute)并收集有关哪些函数通过和哪些失败的数据。

我想在实际编写部分代码之前编写测试,但是我不想运行assert而是运行每个测试并生成哪些测试类功能失败的列表。但这意味着,如果测试失败,则意味着存在错误-但我还想处理忘记定义类的实例,等等。有可能这样做而又不会使整个脚本消失吗?

我以为脚本会一直失败,直到在函数前加上@调用该函数,然后继续执行,但是显然我错了。有解决方法吗?

参考方案

致命错误是致命错误,您无能为力。

解决方案的两个想法可能是:

在尝试调用方法之前测试它是否存在;见method_exists
或者,要在单独的进程中运行每个“测试”:这样,如果一个测试引起致命错误,则只有与该测试相对应的“子”进程死亡,而“父”进程即测试启动器,可以检测到这一点并将其视为失败。

实际上,如果我没有记错的话,第二个解决方案存在于PHPUnit版本3.4之后;

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

PHP-如何建议搜索字词,“你是说……?” - php

当使用不检索任何结果的术语搜索数据库时,我想允许“您是不是……”建议(例如Google)。例如,如果有人寻找“ jquyer””,它将输出“ did you mean jquery?”当然,建议结果必须与数据库内部的值匹配(我正在使用mysql)。您知道可以做到这一点的图书馆吗?我已经用谷歌搜索过,但是没有找到任何好的结果。或者,也许您有一个想法,该如何独自…

php:将分钟取整到最近的四分之一小时,然后执行更多操作 - php

最初的问题是这样的:取分钟数->转换为四分之一小时-> 1个四分之一小时为1个单位->输出单位我今天整天都在整理页面,几分钟前我的大脑就停止工作了,我只是不知道如何输出单位数量。我知道在此网站上发布问题会有所帮助。因此,用户输入的分钟数(不是小时和分钟,而是数分钟),站点需要输出单位数量。单位是一个刻钟。分钟总是四舍五入到最近的四分之一小时…