函数值传递和引用传递

值、引用参数

按值传递
PHP中默认是按值传递参数,而且函数参数也属于局部变量,所以即使在函数内部改变参数的值,它并不影响外部的值。函数为子程序,调用函数的程序可以称为父程序。父程序直接传递指定的值或是变量给函数使用。由于传递的值和变量,与函数里的数值分别存储在不同的内存区块,所有如果函数对导入的数值做了任何变动,并不会父程序造成直接影响。

<?php
header('content-type:text/html;charset=utf-8');
function test($arg){
    $arg=200;
}
 $var=100;
 test($var);
 echo $var;//输出结果100 $var的值没有变化

引用传递
如果希望允许修改它的参数值,必须通过引用传递参数。它是把该数值或变量的内存储存区块相对地址导入函数中,因此当该值在函数中有任何变动时,会带动对父程序造成影响。

<?php
header('content-type:text/html;charset=utf-8');
function test(&$arg){
    $arg=200;

}
 $var=100;
 test($var);
 echo $var;//输出结果200 $var的值变化

注意:如果在函数形参中使用‘&’修饰参数,在调用时就必须传入一个变量给这个参数,而不能是一个值。

默认参数

在定义函数时声明了参数,而在调用函数时没有指定或者是少指定了参数,就会出现缺少参数的警告。在PHP中,支持函数的默认方式调用,即为参数指定一个默认值。在调用函数时如果没有指定参数的值,在函数中会使用默认值。默认值必须是常量表达式,不能是变量、类成员或者函数调用。php还允许使用数组和特殊类型NULL 做为默认参数。

<?php
header('content-type:text/html;charset=utf-8');
function test($name='张三',$age=20,$sex="男"){
    echo "我的名字是:{$name} 年龄: {$age} 性别: $sex <br/>";

}
test();
test("李四");
test("王五",25);
test("贾六",22,'女');
//结果如下:
我的名字是:张三 年龄: 20 性别: 男 
我的名字是:李四 年龄: 20 性别: 男 
我的名字是:王五 年龄: 25 性别: 男 
我的名字是:贾六 年龄: 22 性别: 女 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值