2

我将两个参数传递给assertPHP 教程网站上所述的函数,并得到错误。这是我的做法:

assert('2 < 1', 'Two is less than one');

为什么会失败?

4

4 回答 4

4

额外的第二个参数被添加到assertPHP 5.4.8 中的方法中。如果您使用的是旧版本,则只能使用一个参数。

来源: http: //php.net/assert

于 2013-10-19T13:18:05.390 回答
4

如果您不在 php 5.4.8 上,您仍然可以通过在第一个 assert 参数中添加注释来获得有意义的消息:

$x = 1; $y = 2;
assert('$x > $y /*x should be greater than y*/');

这给出了输出:

Warning: assert(): Assertion "$x > $y /*x should be greater than y*/" failed in ...
于 2014-05-21T17:20:25.933 回答
0

php 5.4.8版本才添加assert描述参数,你用的是什么版本的php?

http://php.net/manual/en/function.assert.php

于 2013-10-19T13:19:26.643 回答
0

您应该使用这些选项,这是工作示例:

// Active assert and make it quiet
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Create a handler function
function my_assert_handler($file, $line, $code, $desc = null)
{
    echo "Assertion failed at $file:$line: $code";
    if ($desc) {
        echo ": $desc";
    }
    echo "\n";
}

// Set up the callback
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Make an assertion that should fail
assert('2 < 1');
assert('2 < 1', 'Two is less than one');
于 2013-10-19T13:19:40.163 回答