我将两个参数传递给assert
函数,如PHP教程网站上所述,并获取错误。我是这样做的:
assert('2 < 1', 'Two is less than one');
为什么会失败?
答案 0 :(得分:4)
额外的第二个参数已添加到PHP 5.4.8中的assert
方法中。如果您使用的是旧版本,则必须只使用一个参数。
答案 1 :(得分:4)
如果你不在php 5.4.8上,你仍然可以通过在第一个断言参数中添加注释来获得有意义的消息:
$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 ...
答案 2 :(得分:0)
在php版本5.4.8之前,没有添加断言描述参数,你使用的是什么版本的php?
答案 3 :(得分: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');