相信不少和我一样的php新人在学习PHP的时候和我一样,都郁闷过这个问题。@(at)这个记号到底是做什么的呢?
一次,下载别人的源码来看,看到无数@记号,开始以为是注释;后来发现@后面的语句也是会执行的。纳闷了,这个记号究竟是做什么的呢.....
随着学习的不断深入,总算是明白了。这个记号的作用有点类似于asp中的忽略错误"on error resume next "。他们的作用是一样的,当php解释器遇到@开头的语句时候,无论本行的语句是否执行成功,都会继续执行后续的语句,而且不会报错。但特别注意,@(at)记号只对当前行起作用哦。
希望关于@(at)的问题就在这打住把。
eg.下面这句话肯定报错
报错代码
代码如下 |
$sql = mysql_connect(*);
立即学习“PHP免费学习笔记(深入)”; |
立即学习“PHP免费学习笔记(深入)”;
然而,如果我们加上@(at)记号,就不会报错了,而且继续执行。
不报错代码
代码如下 |
@$sql = mysql_connect(*); |
继续执行下边的代码。
代码如下 |
@$page=$_GET['page']?intval($_GET['page']):1; |
这句是从URL中获取page关键字的值,比如"index.php?page=5",则$page就会取到5。
但是如果有error,比如"index.php"后没有page关键字了,如果去取$_GET['page']不存在就会报错,这时有@就可以忽视这个小错误了。
又比如:
代码如下 |
$conn = mysqli_conncet("q","w","e","r"); |
这样会输入错误信息,关于连接数据库方面的。
代码如下 |
@$conn = mysqli_conncet("q","w","e","r"); |
如果$conn前面加@的话就可以不让他输出错误信息了。