PHP学习(四)


函数可以比喻成我们现实生活中的 某个零件的制造部门
参数:原材料或者是这个零件的一些具体的参数

自定义函数

函数的定义
格式如下:

function 函数名([参数1,参数2····参数n	]){
函数体;//任何有效的PF护代码都可以作为函数体使用
return表达式; //可以从函数中返回一个值,也可以不返回
}

函数的调用:

不管是自己定义的函数还是系统提供的函数,如果函数不被调用就不会执行
调用:函数被调用后开始执行函数体中代码,执行的过程是相对独立的(如果调用两次同一个函数,这两个函数也是独立的),执行完毕返回调用的位置继续向下执行
把函数名字在另一行写一遍即为调用

函数参数和返回值:
参数:

形式参数由零个、一个或者多个变量组成
实际参数由零个、一个或者多个参数组成,每个参数是一个表达式,用逗号分隔
就是传入函数的变量

注:实际参数可以比形式参数多(多出来的也没用),但不能少
返回值:

函数的返回值是将函数执行后的结果返回给调用者
默认如果不写返回则函数的返回值为null
就是执行函数后函数输出的结果

例:

<?php
function add($a,$b){//形式参数
return $a+$b;//返回值
}
$i=add(10,20)//调用,实际参数
echo $i;
?>

PHP变量范围

1.局部变量

局部变量也称为内部变量。局部变量是在函数内定义的,其作用域仅限于函数内部,离开该函数后再使用这种变量就是非法错误的

function test(){
			$a=1;//局部变量$a,尽在这个函数内部有效
		}
		echo $a;

2.全局变量

全局变量也称为外部变量,在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾
在PHP函数中无法直接使用全局变量,如需使用必须使用global声明变量!

$i=10;//全局变量(外部变量)
		define('MY_NAME','学长帅');
		function test(){
			echo MY_NAME;
			global $i;//声明$i为全局变量,然后再这个函数内部就可以使用$i
			echo $i;
			$a=1;
		}
		test();

3.静态变量

静态变量的是指在函数内部定义变量的时候使用static关键字来定义变量
特点:函数执行完毕之后变量不会立即消失,当再次调用函数时,静态变量保存的值依然存在,并且仅在第一次执行函数的时候会初始化值!

function test(){
			static $a=10;//静态变量$a,初始化静态变量,尽在第一次调用的时候执行
			echo ++$a;//当第二次执行这个函数的时候$a这个变量依然存在并且里面的也值依然存在!
		}
		test();
		echo '<br />';
		test();
		echo;//和第一次调用函数结果一样都是11

参数的传递

1.按值传递参数

默认的,我们在传递参数的时候默认使用的就是这个方式
对形式参数的操作,根本不是影响到实际参数(变量)的值,两者相当于没有联系

<?php
function test($a){
	echo ++$a;
}
$i=10;
test($i);
echo '<br />'.$i;//输出的$i还是10,并没有改变

2.按引用传递参数

按引用传递参数,相当于形式参数和实际参数指的是同一个人,只是名字不一样,对于形式参数的操作会直接影响到实际参数(变量)

<?php 
function test(&$a){
	echo ++$a;
}
$i=10;
test($i);
echo '<br />'.$i;//输出$i是11,已经改变
?>

3.函数的默认参数

可以给形式参数设置默认值,设置方法很简单直接赋值即可
给形式参数加默认值的时候是重右往左加的,右边的必须有,才能够给左边的加

<?php 
function test($a=10){//参数的默认值
	echo ++$a;
}
test(20);//如果没有实参20,则会按照默认的10来输出结果
function test($a,$b=20,$c=30){
	echo $a+$b;
}
test(25,20);//这里使$a=20,$b=20
?>

4.可变长度参数列表

PHP提供给我们的,可以直接使用
func_get_args();//输出传入的参数
func_get_arg();//输出括号里指定的第n个参数(从0开始)
func_num_args();//输出传入参数的个数
这三个函数可以使用在我们的自定义函数内部,能够返回给我们一些关于参数的信息

可变函数(变量函数)

直接把函数赋值给变量
可变函数不能用于例如 echo,print,unset(),isset(),empty(),include,require 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数

<?php 
function test(){
	echo '我是test函数!';
}
$a='test';//把函数名字加上引号,赋值给变量即可
$a();//test();
?>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值