综艺
assert函数(php中assert和eval的详细介绍(代码示例))

assert 判断一个表达式是否成立。返回true or false;

$s = 123;

?>

不过eval($code_str)只是执行符合php编码规范的$code_str。

注意:1.eval()里必须是字符串;

eval定义和用法:

(2)该字符串必须是合法的 PHP 代码,且必须以分号结尾。

assert的用法却更详细一点。

默认值

ASSERT_WARNING =1 //当表达式为false时,是否要输出警告性的错误提示,issue a PHP warning for each failed assertion

ASSERT_QUIET_eval= 0 //是否关闭错误提示,在执行表达式时;disable error_reporting during assertion expression evaluation

php的官方文档里头是建议将assert用来进行debug,我们可以发现还有一个开关ASSERT_ACTIVE可以用来控制是否开启debug。

既然assert主要作用是debug,就不要在程序发布的时候还留着它。在程序中用assert来对表达进行判断是不明智的,原因上文说了, 一个是在生产环境中assert可能被disabled,所以assert不能被完全信任;二是assert()可以被继续执行;而如果在生产环境让 ASSERT_ACTIVE=1,那这个表达式字符串可以被执行本身就存在安全隐患。assert引起的代码注射

例如

function fo(){

$fp = fopen("c:/test.php",'w');

fclose($fp);

}

?>

以上就是php中assert和eval的详细介绍(代码示例)的详细内容,更多请关注其它相关文章!

更多技巧请《转发 + 关注》哦!


顶一下()     踩一下()

热门推荐

发表评论
0评