php函数间的参数传递(值传递/引用传递)_php技巧

php:函数间的参数传递

1.值传递

复制代码 代码如下:

<?php
function exam($var1){
$var1++;
echo "In Exam:" . $var1 . "<br />";
}

$var1 = 1;
echo $var1 . "<br />";
exam($var1);
echo $var1 . "<br />";
?>

-------------------------------------------------------------------------------
输出结果:
1
In Exam: 2
1
-------------------------------------------------------------------------------
2.引用传递

复制代码 代码如下:

<?php
function exam( &$var1){
$var1++;
echo "In Exam:" . $var1 . "<br />";
}

$var1 = 1;
echo $var1 . "<br />";
exam($var1);
echo $var1 . "<br />";
?>

-------------------------------------------------------------------------------
输出结果:
1
In Exam: 2
2
-------------------------------------------------------------------------------
3.可选参数

复制代码 代码如下:

function values($price, $tax=""){
$price += $prive * $tax;
echo "Total Price:" . $price . "<br />";
}

values(100, 0.25);
values(100);

输出结果:
Total Price: 125
Total Price: 100
-------------------------------------------------------------------------------
4.如果传入的是一个对象,可以更改该对象的值
(实际上变量$obj记录的是这个对象的句柄,将$obj作为参数传入,完全可以对原对象进行操作。)

复制代码 代码如下:

<?php
class Obj{
public $name;
public $age;
public $gander;
public function __construct($name, $age, $gander){
$this->name = $name;
$this->age = $age;
$this->gander = $gander;
}
public function show_info(){
echo $this->name . " " . $this->age . " " . $this->gander . "<br />";
}
}
function grow($obj){
$obj->age++;
}
function test(){
$obj = new Obj("Mr. zhan", "12", "male");
$obj->show_info();
grow($obj);
$obj->show_info();
grow($obj);
$obj->show_info();
}
test();
?>

-------------------------------------------------------------------------------
输出结果:
Mr. zhan 12 male
Mr. zhan 13 male
Mr. zhan 14 male

时间: 2024-10-07 08:04:59

php函数间的参数传递(值传递/引用传递)_php技巧的相关文章

c#中通过值和引用传递参数(downmoon)

c#中通过值和引用传递参数(downmoon)在 C# 中,既可以通过值也可以通过引用传递参数.通过引用传递参数允许函数成员(方法.属性.索引器.运算符和构造函数)更改参数的值,并保持该更改.若要通过引用传递参数,请使用 ref 或 out 关键字.为简单起见,本主题的示例中只使用了 ref 关键字.有关 ref 和 out 之间的差异的信息,请参见.使用 ref 和 out 传递数组. 本主题包括下列章节: 传递值类型参数 传递引用类型参数它还包括以下示例: 示例 演示 是否使用 ref 或

C++中的值传递,引用传递及指针传递

C++的值传递,引用传递,指针传递这些概念一直是困扰C++程序员,我一直也没有一个能说清他们之间的关系通过一个简单的实例,或者说浅显的说法,找了一些相关资料,和自已的个人感受,简单介绍一下. c++中传递参数的方式有三种:传参数的值(称为值传递,简称传值),传参数的地址(称为地址传递,简称为传址),和引用传递(简称为传引用),相应的函数也就是传值调用,传址调用和传引用调用 函数定义时参数表中的参数称为形式参数,简称形参,函数调用时参数表中的参数称为实际参数,简称实参,实参和形参之间的数据传递称为

javascript数组与php数组的地址传递及值传递用法实例_php技巧

本文实例讲述了javascript数组与php数组的地址传递及值传递用法.分享给大家供大家参考.具体如下: javascript数组为地址传递/引用传递,而php数组为值传递 实例代码如下: 复制代码 代码如下: <?php $arr = array(3,9,4); function test($arr){  $arr[0] = 30; } test($arr); foreach($arr as $val){  echo $val." "; } ?> <script

c#中通过值和引用传递参数

在 C# 中,既可以通过值也可以通过引用传递参数.通过引用传递参数允许函数成员(方法.属性.索引器.运算符和构造函数)更改参数的值,并保持该更改.若要通过引用传递参数,请使用 ref 或 out 关键字.为简单起见,本主题的示例中只使用了 ref 关键字.有关 ref 和 out 之间的差异的信息,请参见.使用 ref 和 out 传递数组. 本主题包括下列章节: 传递值类型参数 传递引用类型参数它还包括以下示例: 示例 演示 是否使用 ref 或 out 1 通过值传递值类型 否 2 通过引用

js 事件处理函数间的Event物件是否全等_javascript技巧

这个小问题以前就遇到,却没有去总结 现在又遇到,为了得到准确结论,记录下来: 如题:同一事件 多个执行函数间的Event物件是否全等 例如: 复制代码 代码如下: dom.addEvent('click',fna); dom.addEvent('click',fnb); 1:在fna里对Event物件添加的属性,在其后执行的fnb函数里是对于Event物件是否能访问到? 2:执行fna/fnb函数时的Event物件是否全等 Eventfna===Eventfnb ? 标准的文档太长哪里是说明了这

PHP将回调函数作用到给定数组单元的方法_php技巧

数组是PHP程序设计中十分重要的一环.本文介绍PHP中数组函数array_map()的用法,实现将回调函数作用到给定数组单元上.具体如下: array array_map ( callable $callback , array $arr1 [, array $... ] ) array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元. callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致. 示例程序如下

PHP数组传递是值传递而非引用传递概念纠正_php技巧

在调用函数时通过将PHP数组作为实参赋给形参,在函数中修改,并不会影响到数组本身. 说明此过程中的传递为值传递,数组变量并非是指向此数组本身的引用,PHP数组本身以值的形式存在,同时形参是对数组的拷贝. 这点与其他一些语言不同(如c.Js等)很不相同,值得注意! 复制代码 代码如下: $arr = array( 'name' => 'corn', 'age' => '24', ); test_arr($arr); function test_arr($arr){ $arr['name'] =

JavaScript传递变量: 值传递?引用传递?_javascript技巧

当变量A赋值给变量B时,会将栈中的值复制一份到为新变量分配的空间中. 如何理解? 复制代码 代码如下: var x = y = 1; y = 2; alert(x); x的值为多少? 复制代码 代码如下: var obj = {}; var sub = {}; sub['id'] = 3; obj['sub'] = sub; sub['id'] = 4; alert(obj['sub']['id']); obj['sub']['id']的值又为多少?他们真的符合你的预期吗? 我们分别运行2段代码

php sprintf()函数让你的sql操作更安全_php技巧

$bookSQL=sprintf("UPDATE book SET pass=%s WHERE id=%d",                               GetSQLValueString($_POST['list'], "text"),                               GetSQLValueString($_GET['id'],"int")); GetSQLValueString 这个函数,可以换成