php中@符号的功用和php函数前的&符号的作用
. 作用?用来隐藏错误的
2. 什么时候用?某些错误会中止程序,但其实它可能只是局布的错误,因一个小错误而中止了程序,肯定不好啦,因此在自己意料之中可能出错的地方前面加个“@”,就能防止因错误而引起的程序中止。比如“$con =@mysql_connect($MYhost,$DB_name,$DB_PassWord);”
3. 应注意什么问题?
@只是掩耳盗铃的做法,它只是隐藏了错误,但并没有解决错误。
?
?
第二个问题答案:
?
?
php函数前的&符号的作用:
看下面的代码,函数test前面有一个&符号.
function &test(){
//申明一个静态变量
static $b=0;
$b=$b+1;
echo $b;
return $b;
}
调用方式及输出结果如下:
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6
说明:
通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别.
至于原因: 这是PHP的规定
PHP规定通过$a=&test(); 方式得到的才是函数的引用返回.
至于什么是引用返回呢(php手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。)
手册上的这句话可能不太好理解,看下面的解释:
$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b.
而通过$a=&test()方式调用函数呢, 他的作用是将return $b中的 $b变量的内存地址与$a变量的内存地址,
指向了同一个地方.
即产生了相当于这样的效果($a=&b;) 所以改变$a的值,也同时改变了$b的值,所以在执行了:
$a=&test();
$a=5;
以后,$b的值变为了5
相关文章
相关视频
上一篇: css3的新属性box-sizing详解
下一篇: php中at @符号的作用使用说明
推荐阅读
-
PHP和ASP中关于转向函数的区别_PHP
-
PHP中引述(变量和函数名前加&符号)的用法
-
php中echo()和print()、require()和include()等易混淆函数的区别_PHP
-
php获取URL中带#号等特殊符号参数的解决方法
-
PHP中exec函数和shell_exec函数的区别,execshell_exec_PHP教程
-
如何用PHP中的mktime函数获取开始和结束时间
-
PHP中array_keys和array_unique函数源码的分析_PHP
-
php中函数前加&符号的作用分解,php函数
-
php中get_headers函数的作用及用法的详细介绍
-
ThinkPHP中__initialize()和类的构造函数__construct()用法分析_php实例