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页:使用引用 ...
随机推荐
- Netty高性能之Reactor线程模型
Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用 ...
- 【论文笔记】Progressive Neural Networks 渐进式神经网络
Progressive NN Progressive NN是第一篇我看到的deepmind做这个问题的.思路就是说我不能忘记第一个任务的网络,同时又能使用第一个任务的网络来做第二个任务. 为了不忘记之 ...
- C# Dictionary通过value获取对应的key值
1:最直白的循环遍历方法,可以分为遍历key--value键值对以及所有的key两种表现形式 2:用Linq的方式去查询(当然了这里要添加对应的命名空间 using System.Linq) 如下为一 ...
- 5. 支持向量机(SVM)软间隔
1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...
- 4. 文本相似度计算-CNN-DSSM算法
1. 文本相似度计算-文本向量化 2. 文本相似度计算-距离的度量 3. 文本相似度计算-DSSM算法 4. 文本相似度计算-CNN-DSSM算法 1. 前言 之前介绍了DSSM算法,它主要是用了DN ...
- ios label 简单的长按复制文本信息
在iOS开发过程中,有时候会用到UILabel展示的内容,那么就设计到点击UILabel复制它上面展示的内容的功能,也就是Label长按复制功能.网上有很多种给Label添加长按复制功能的方法,这里我 ...
- JQUERY双下拉框内容的左右移动
教程源码:http://bbs.php100.com/read-htm-tid-74060.html用到的方法为:appendTo() 格式:$(content).appendTo(selector ...
- C#2.0 Socket套接字编程之实例初探 200
首先从原理上解释一下采用Socket接口的网络通讯,这里以最常用的C/S模式作为范例,首先,服务端有一个进程(或多个进程)在指定的端口等待客户来连接,服务程序等待客户的连接信息,一旦连接上之后,就可以 ...
- 合并ts文件
合并ts文件 合并ts文件 参考资料 合并ts文件 文件在手机中的存储: ├── fe2cd5a64fe78a69f90a7c0a2b08a240e1444082.ts ├── ff5b590b44e ...
- JVM内存的设置
一.JVM内存的设置的原理 默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError. 设置jvm内存的方法,对于单独的.class ...