php函数传值的几个细节,及对应实例代码
来源:互联网 发布:淘宝店过户 编辑:程序博客网 时间:2024/04/27 22:37
函数参数传递的方式有两种
1 、传值方式。缺省情况下,函数参数通过传值的方式传递,因此即使在函数内部改变参数的值,它并不会改变函数外部参数的值。2 、传址方式。传址时只需在函数调用时在参数的前面加上“&”号即可。将函数外部的值的内存地址传递给内部的参数,在函数内部的所有操作都会改变函数外部参数的值。所以希望函数修改外部参数的值,必须使用传址传址方式。
在PHP中,有传下面几种传值方式(网上来源)
//一、基本数据类型的传值
/* **************************************************** */function testvar($k){$k = 40;}$c = 30;//给一个函数参数传一个基本数据类型(整型,布尔,字符 ...), 实际上传的就是值 ;testvar($c);echo $c;//结果是:30 function testvar2(&$k){$k = 40;}$e = 30;//给一个函数参数传一个基本数据类型(整型,布尔,字符 ...), 实际上传的y就是地址 ;testvar2($e);echo $e;//结果是:40 /* **************************************************** *///二、数组(默认情况下是复制一份数据),如要传地址则&$arr.
$arr1 = array(-1,5,0);function testArr($arr){for($i=0;$i<count ($arr);$i++){for($j=$i+1;$j<count($arr);$j++){if($arr[$i]>$arr[$j]){$temp = $arr[$i];$arr[$i] = $arr[$j];$arr[$j] = $temp;}} }print_r($arr); //结果:Array ( [0] => -1 [1] => 0 [2] => 5 ) }testArr($arr1);print_r($arr1); //结果:Array ( [0] => -1 [1] => 5 [2] => 0 ) function testArr2(&$arr){for($i=0;$i</count><count ($arr);$i++){for($j=$i+1;$j<count($arr);$j++){if($arr[$i]>$arr[$j]){$temp = $arr[$i];$arr[$i] = $arr[$j];$arr[$j] = $temp;}} }}testArr($arr1);print_r($arr1); //结果:Array ( [0] => -1 [1] => 0 [2] => 5 ) /* **************************************************** *///三、对象数据类型传值
class person{public $name;public $age;} $a = new person();$a->name = '小明';$a->age = '20';//变量a在存的是对象的地址,把a赋给b这个变量,实际上就是赋了一个地址。$b = $a;$b->age = 30;//echo $a->age.$b->age;//结果是:30 30//给一个函数参数传一个对象, 实际上传的是这个对象的地址;function test($k){$k->age =40;}//调用test($b);//echo $a->age.$b->age;//结果是:40 40
0 0
- php函数传值的几个细节,及对应实例代码
- 几个常用的Oracle函数及实例运用
- PHP匿名函数的细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- C++拷贝构造函数的几个细节
- 拷贝构造函数的几个细节
- 几个有用的php字符串过滤,转换函数代码
- maven springMVC+Mybatis
- dispatch_semaphore_create信号
- 数组指针(int *)(&a+1)
- dedecms V5.7笔记:判断空值或含有某个值的写法(例如是否推荐文章,是否图片等)及field:picname function='thumb(@me最大比例缩图的显示判断
- 【排序算法】经典排序算法之插入排序
- php函数传值的几个细节,及对应实例代码
- Maven系列2--pom.xml 配置详解
- poj1035 Spell Checker
- 基于注解的SpringMVC简单介绍
- ASCII码表
- Hadoop的TaskTracker黑名单机制
- 详解coredump
- Error: unable to connect to node rabbit@10: nodedown
- 最近的工作及想法