> 백엔드 개발 > PHP 튜토리얼 > php中@符号的功用和php函数前的&符号的作用

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

WBOY
풀어 주다: 2016-06-13 13:20:32
원래의
1261명이 탐색했습니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿