怎么不死?

时间:2010-07-01 05:39:50

标签: php

我想要这样的事情:

or function() { echo mysql_error().'<br>'; } // doesn't work

而不是:

or die(mysql_error());

我想继续执行脚本,而不是“死”。我不能用那种匿名函数吗?我只是不喜欢这个名字。

编辑/提示:为了创建匿名函数,有一个名为create_function的lambda样式函数...

3 个答案:

答案 0 :(得分:4)

or print  mysql_error();
虽然将它打印出来然后就像死亡一样糟糕 在完美的世界里,它将是

$res = mysql_query($query) or trigger_error(mysql_error().$query);

总是那样做。您不仅可以获得文件名和行号(当您在页面上有大量查询时,MIGHTY会很有帮助),而且还会在生产服务器上保密敏感信息,您可以在其中显示错误并登录。< / p>

答案 1 :(得分:2)

function() { echo mysql_error().'<br>'; }

定义一个函数,它不会调用它。要打电话,你必须

$a =  function() { echo mysql_error().'<br>'; };
$a();

或使用call_user_func,例如:

false or call_user_func(function() { echo "hi".'<br>'; });

当然,你不妨写一下;

false or printf("hi<br />");

echo不起作用因为它不是一个函数;它是一种语言结构。(由于print也是一种语言结构而且它确实有效,因此不适用于其他一些语法原因。)

答案 2 :(得分:0)

如果在函数前放置@,它将抑制错误。

$example = @mysql_query(....);

虽然使用它通常是一个坏主意。