相信不少和我一样的php新人在学习PHP的时候和我一样,都郁闷过这个问题.@(at)这个记号到底是做什么的呢?
一次,下载别人的源码来看,看到无数@记号,开始以为是注释;后来发现@后面的语句也是会执行的.纳闷了,这个记号究竟是做什么的呢.....
随着学习的不断深入,总算是明白了.这个记号的作用有点类似于asp中的忽略错误"on error resume next ".他们的作用是一样的,当php解释器遇到@开头的语句时候,无论本行的语句是否执行成功,都会继续执行后续的语句,而且不会报错.但特别注意,@(at)记号只对当前行起作用哦,希望关于@(at)的问题就在这打住把,eg.下面这句话肯定报错.
报错代码实例如下:
- <?php
-
- $sql = mysql_connect(*);
- ?>
然而,如果我们加上@(at)记号,就不会报错了,而且继续执行.
不报错实例代码如下:
- <?php
-
- @$sql = mysql_connect(*);
- echo "我一直在执行";
- ?>
继续执行下边的代码.
实例代码如下:
- @$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前面加@的话就可以不让他输出错误信息了.