0

我正在使用来自 CentralNIC ( https://github.com/centralnic/php-epp/ ) 的 NET_EPP 库在某些时候我的脚本调用

@$frame = new \Net_EPP_Frame_Command_Login(); //the EPP framework throws a warning otherwise    

注意行首的@,这样做是为了抑制第 3 方库在此处抛出的警告。

所以,Net_EPP_Frame_Command_Login 的构造函数调用它的父构造函数

class Net_EPP_Frame_Command_Login extends Net_EPP_Frame_Command {
    function __construct() {
        parent::__construct('login');

看起来像

class Net_EPP_Frame_Command extends Net_EPP_Frame {

        function __construct($command, $type) {
            $this->type = $type;

这部分反过来给我2个警告-

WARNING: Missing argument 2 for Net_EPP_Frame_Command::__construct()
NOTICE: Undefined variable: type

如何在不修改库的情况下抑制这些警告?

更新

有趣的是,如果我直接与我的服务器交谈,它不会显示警告,尽管如果我使用 curl 获取页面内容,它会显示。

$args = array("domainName" => $_POST['domain'], "tld" => $_POST['tld']);
$action = "CheckAvailabilityActionByModule";
$msg = new CommsMessage($action,$args);
$reply = TestServer::main($msg->encode());
$reply = CommsMessage::decodeReply($reply);

工作正常,因为我直接与服务器交谈。但

$reply = $client->getAvailabilityByModule($_POST['domain'], $_POST['tld']);

不是因为这个请求是通过 curl 完成的

4

3 回答 3

0

您可以更改 error_reporting (除了没有警告或通知):

error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));

或者设置您自己的错误处理程序error_reporting在这种情况下设置将无效:

set_error_handler("myErrorHandler");

function myErrorHandler($errno, $errstr, $errfile, $errline) {
    // do what you want in case of error

    /* Don't execute PHP internal error handler */
    return true;
}
于 2013-07-25T16:23:28.893 回答
0

要么给两个参数一个值,要么从你的 __construct 函数中删除一个值。

于 2013-07-25T16:24:05.067 回答
0

详情请查看http://php.net/manual/en/function.error-reporting.php 关闭所有错误报告。

error_reporting(0); 
于 2013-07-25T16:14:19.900 回答