&php的引用,php引用(&)详解

php引用(&)详解

php引用(&)详解

2009-05-13 14:30

php的引用(就是在变量或者函数、对象等前面加上&符号)

在PHP 中引用的意思是:不同的名字访问同一个变量内容.

与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址

变量的引用

PHP 的引用允许你用两个变量来指向同一个内容

[php]

$a="ABC";

$b =&$a;

echo $a;//这里输出:ABC

echo $b;//这里输出:ABC

$b="EFG";

echo $a;//这里$a的值变为EFG 所以输出EFG

echo $b;//这里输出EFG

?>

[/php]

函数的传址调用

传址调用我就不多说了 下面直接给出代码

[php]

function test(&$a)

{

$a=$a+100;

}

$b=1;

echo $b;//输出1

test($b);   //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了

echo "
";

echo $b;//输出101

[/php]

要注意的是,在这里test(1);的话就会出错,原因自己去想

函数的引用返回

先看代码

[php]

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

[/php]

下面解释下:

通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别 至于原因: 这是PHP的规定

PHP规定通过$a=&test(); 方式得到的才是函数的引用返回

至于什么是引用返回呢(PHP手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。) 这句狗屁话 害我半天没看懂

用上面的例子来解释就是

$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b

而通过$a=&test()方式调用函数呢, 他的作用是 将return $b中的 $b变量的内存地址与$a变量的内存地址 指向了同�

相关文档:

开发Web应用程序PHP是最理想的工具,易于使用、功能强大、成本低廉、高安全性、开发速度快且执行灵活。全书以实用为目标设计,内容丰富,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂。从运行环境搭建、PHP的基本语法和规范入手,由浅入深,循序渐进,系统的介绍了 ......

我是一个工作了一年零两个月的PHP程序员,在工作前学习了LAMP兄弟连网站上高洛峰老师的全部PHP教学视频,可谓受益匪浅,是高老师将我带入了PHP的领域,今年终于等到了期待已久的高老师的《细说PHP》,先是在网上看到了样章,仅从样章中就可以看到作者所付出的艰辛,也可以看出作者的技术实力,优点颇多,迫不及待的网购了 ......

MySQL+PHP产生乱码原因:

◆ MySQL数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MySQL乱码;

◆ MySQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;

◆ MySQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MySQ ......

/**

* 获取图象信息的函数

*

* 一个全面获取图象信息的函数

*

* @access public

* @param string $img 图片路径

* @return array

*/

function GetImageInfoVal($ImageInfo,$val_arr) {

$InfoVal = "未知";

foreach($val_arr as $name=>$val) {

&nbsp ......

3、PHP安装

1)还是下载源码包,如:php-5.1.1.tar.gz,下载地址:http://www.php.net

2)解压缩,>tar -zxvf php-5.1.1.tar.gz

3)进入php-5.1.1,>cd php-5.1.1

4)安装配置,>./configure --prefix=/opt/php

--with-apxs2=/opt/apache/bin/apxs --with-mysql=/opt/mysql

--with-mysqli=/opt/mysql/bin/ ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值