Home > Backend Development > PHP Tutorial > php中@符号的功用和php函数前的&符号的作用

php中@符号的功用和php函数前的&符号的作用

WBOY
Release: 2016-06-13 13:20:32
Original
1261 people have browsed it

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template