PHP函数前面的@。

@是可以屏蔽函数执行过程中遇到问题而产生的一些错误、警告信息,这样用户就看不到程序的出错信息。这样除了用户界面会友好一些外,更重要的是安全性,因为屏蔽了出错文件的路径等信息。

比如说这个:

  1. for($i = 0;$i<$to;$i++){
  2. $result = fsockopen($target, $i, $errno, $errstr, 1);
  3. if(!$result) echo "Port $i Closed...".'<br>';
  4. else "Socket open at port:$i".'<br>';
  5. }

fsockopen在执行的过程中会产生连接超时的警告,如果不在这个函数前加@,那么输出信息是这样的:

点击查看原图

如图所示,错误信息会列出完整的路径和出错行,这是相当危险的!在看看在fsockopen()函数前加上@...那么警告信息就被屏蔽了:

原文地址:https://www.cnblogs.com/ribavnu/p/4440397.html