php函数返回引用示例
<?php class Test
{
public $userCache; public function init()
{
for($i = 0; $i < 5; $i++)
{
$user = array(
'name' => "joe$i",
'age' => 23 + $i,
);
$this->userCache[] = $user;
}
} public function displayArray($arr = '')
{
if( gettype($arr) !== 'array' )
$arr = $this->userCache; foreach($arr as $k => $v)
{
echo "$k: ";
print_r($v);
echo "\n";
}
} public function &getUser($uid) // 函数返回引用
{
if( isset($this->userCache[$uid]) )
{
return $user = &$this->userCache[$uid]; // $user取引用(此处不能断)
}
else
{
echo "create a new user:\n";
$user = array('name'=>'xxy', 'age'=>66);
$this->userCache[$uid] = $user;
return $user = &$this->userCache[$uid];
}
} public function modifyUser($uid)
{
//$user = $this->getUser($uid); // 非引用调用
$user = &$this->getUser($uid); // 引用调用
$this->displayArray($user); echo "------------------\n";
$user['name'] = 'jjoe'; // 修改返回值
$this->displayArray($user);
$this->displayArray(); // 这里可看到被引用的对象值已被修改
} } $a = new Test();
$a->init();
$a->modifyUser(12);
运行结果:
[zcm@vm-fedora20 server]$ php test.php
create a new user:
name: xxy
age: 66
------------------
name: jjoe
age: 66
0: Array
(
[name] => joe0
[age] => 23
) 1: Array
(
[name] => joe1
[age] => 24
) 2: Array
(
[name] => joe2
[age] => 25
) 3: Array
(
[name] => joe3
[age] => 26
) 4: Array
(
[name] => joe4
[age] => 27
) 12: Array
(
[name] => jjoe
[age] => 66
)
php函数返回引用示例的更多相关文章
- PHP 函数的“引用返回”概念释疑(转)
		
很多时候我们会看到这样的代码(出自 CI 框架源码): 1 $class =& load_class('a','b'); 我们都知道其中的'&'是指引用,但是它的作用是什么呢?它能够解 ...
 - c++ 函数返回研究[转]
		
一,c++函数的返回分为以下几种情况 1)主函数main的返回值:这里提及一点,返回0表示程序运行成功. 2)返回非引用类型:函数的返回值用于初始化在跳用函数出创建的临时对象.用函数返回值初始化临时对 ...
 - c++中返回对象与返回引用的区别
		
这几天在做用C++做课程设计,对其返回对象的实现感到迷惑. 通过对汇编代码的分析,可以清楚的看到,直接返回引用和返回对象的区别到底是什么. 分析的程序如下 #include<cstdio> ...
 - C++函数返回值(02)
		
对象作为返回值 编译器会将函数栈中的返回值数据拷贝到返回栈中 指针作为返回值 函数的返回值可以是存储某种类型数据的内存地址,称这种函数为指针函数.它们的一般定义形式如下: 类型标识符 *函数名(参数 ...
 - PHP引用(&)初探:函数的引用返回
		
函数的引用返回 先看代码: <?php function &test() { static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b; } ...
 - C++返回引用的函数
		
要以引用返回函数值,则函数定义时的格式如下: 类型标识符&类型名 (形参列表及类型说明) { 函数体 } 用const限定引用的声明方式为: const 类型标识符&引用名=目标变量名 ...
 - PHP获取函数返回值的引用
		
通过在函数前添加&可以获取函数返回值的引用,如:function &test(){return 10;}
 - C++引用和函数返回值
		
这是老师上课讲的内容,现在把它写下来,一方面当做复习,另一方面真的想学点东西.废话不多说,先贴上测试的代码: #include <iostream.h> float temp; float ...
 - C++引用形参,函数返回多个值
		
之前编代码有遇到过想让一个函数返回多个值的情况,low low的我不知道有什么办法,直接使用的全局变量将函数里的值传出去. 今天看书,<C++primer>第五版中文版第189页:使用引用 ...
 
随机推荐
- FFmpeg Basic学习笔记(3)
			
视频叠加--画中画效果 overlay video filter 视频叠加比较常见的应用场景是台标的叠加,在画面左上角.右上角.左下角或右下角叠加台标. ffmpeg提供的overlay filter ...
 - nginx源码分析:module机制
			
根据nginx官方文档,添加一个module的介绍,当我们需要添加一个module时,需要以下操作: 1.为该module新建一个目录. 2.添加一个config文件,一个module核心代码源文件. ...
 - 对jquery新增加的class绑定事件  jquery 对相同class 绑定事件
			
当页面加载时,就会注册所有的事件,后面通过jquery新增的内容(<div class="item"></div>),再对新增的添加事件$(".i ...
 - iOS 设置导航栏全透明
			
- (void)viewWillAppear:(BOOL)animated{ //设置导航栏背景图片为一个空的image,这样就透明了 [self.navigationController.navig ...
 - axublog 1.05代码审计
			
00x1 安装漏洞 install/cmsconfig.php function step4(){ $root=$_POST["root"]; $dbuser=$_POST[&qu ...
 - How Not to Crash #2: Mutation Exceptions 可变异常(不要枚举可变的集合)
			
How Not to Crash #2: Mutation Exceptions 可变异常html, body {overflow-x: initial !important;}html { font ...
 - python使用selenium
			
首先安装 pip install selenium 测试抓取baidu,其中的chromedriver.exe需要自己下载,百度有很多的 import timefrom selenium import ...
 - Django: AttributeError: 'str' object has no attribute 'resolve'
			
再次重温Django的时候,遇到了这个错误.看了页面上,没啥有用的信息.遂谷歌一下,原来是一个很低级的错误:It's because you forgot to type the word " ...
 - AJAX 简单例程示例
			
index.html <html> <head> <script> function showHint(str) { if (str.length==0) { re ...
 - keras系列︱图像多分类训练与利用bottleneck features进行微调(三)
			
引自:http://blog.csdn.net/sinat_26917383/article/details/72861152 中文文档:http://keras-cn.readthedocs.io/ ...