PHP函数基础

本文深入探讨PHP函数,特别是变量函数的概念,介绍如何使用变量作为函数名来动态调用函数。

PHP函数:

一、**语法:定义
	//函数:完成指定任务的功能代码块,是一个已经命名的。
    function  函数名( [参数1,参数2...] ){
		函数体(语句)
		[return 返回值;]
	}
		
	使用: 函数名([参数。]);	
		
	注意:变量要先定义赋值,才可以输出,但函数的定义和使用不分先后顺序的。	
	
	示例:
		//定义一个求累加的函数,要求参数一个:表示要累加的值,返回求和后的结果
			function doSum($m){
			   $sum=0;
			   for($i=0;$i<=$m;$i++){
				  $sum+=$i;
			   }
			   return $sum;
			}
	
	2. 判断函数是否存在: funciton_exists("函数名"); 返回真true或假false
	
	认识一个函数从3个方面:
		1. 函数的功能
		2. 参数的类型,是否可选
		3. 返回值
	
二、变量的作用域(范围)
	(1)由于函数的出现,导致变量的能见度(生命周期)不同。
		共划分为:全局变量、局部变量、 静态变量:
		1. *全局变量:就是在函数外定义变量
			作用域:在函数外和函数内都可以看到的,并可以使用的变量
			注意:在函数内使用函数外的全局变量要使用global关键字先声明一下。
			
			<?php
				//变量的作用域:全局变量
				$a=10;//定义一个变量a值为10
				$b=20;
				//定义一个函数
				function fun(){
				  global $a; //尝试使用外部的全局变量a
				  echo $a; //输出变量a的值10
				  echo $b; //输出变量b的值,结果没有(因为没有使用global)
				  $a=100;
				}
				fun(); //调用函数fun

				echo $a; //100
			 ?>
		2.* 局部变量:在函数内定义的变量,特点只在函数内有效,我们可以使用return将值返回。
				<?php
					//变量的作用域:局部变量

					//定义一个函数
					function fun(){
					  $a=100;	//函数内定义变量
					  echo $a; //输出变量a的值100
					}
					fun(); //调用函数fun

					echo $a; //没有输出,在函数内定义的变量,在函数外是无法使用的
				?>
		3. 静态变量:在函数内使用static关键字定义的变量
			//变量作用域:静态变量的使用

				function fun(){
				  static $i=0; //在当前脚本中连续多次调用本函数,依然有效,里面的静态声明(初始化)只会调用一次。
				  $i++;
				  echo $i."<br/>";
				}

				fun();  //1
				fun();  //2
				fun();  //3
				fun();  //4
                
                
    三、**声明及应用各种形式的PHP函数(函数中参数的种类)
================================================================
        1. 普通参数的函数:
            常规参数的函数格式说明:
                string example(string name,int age,double height) 
            所谓的常规参数的函数,就是函数中参数的类型为php的普通数据类型。
            如:求字串长度函数:int strlen(string $string )
                数据此函数调用时传入的是String字串类型,返回int类型
                
        2. 伪类型参数的函数格式说明: 
                mixed funName(mixed $a, number $b, callback $c) 
            伪类型参数的函数就是参数中的类型是以下三种伪类型的。
            三种伪类型: mixed、number 和 callback。

        3. 引用参数的函数格式说明:
                void funName(array &args) 
            使用&符来实现引用传递,就是将参数直接给给函数使用。(起别名)
			假如函数内容发生改变,会使当前参数也发生改变。
			注意:调用引用参数时,必须使用变量,不可以直接用值。
			如:fun($x);   不可以使用fun(10);
			在定义函数时的参数是使用&标识的参数;
			function myadd($x,$y,&$z){
				$z=$x+$y;
			}
			$a=10;
			$b=20;
			$sum=0;
			myadd($a,$b,$sum);//调用函数myadd,将前两个参数的和赋给第三个参数
			echo $sum; //30
          
        4.默认值参数函数:
			我们可以在定义函数时,将部分参数提前附上初始值,
			当被调用时没有给这参数传值,就会采用默认值,以保障函数正常使用。
			要求默认值从参数的右边开始。
		5.可变长度参数列表的函数。
			此函数的参数个数任意个。
			func_get_args();//以数组的方式返回所有的参数信息
			func_get_arg($index) //获取指定参数位置(index:从0开始的整数)的信息
			func_num_args()//获取参数的个数。
			
			//可变长度参数列表
			function dosum(){
				//echo "参数的个数:".func_num_args()."<br/>";
				//echo "某个参数的值:".func_get_arg(4)."<br/>";
				$sum=0;
				for($i=0;$i<func_num_args();$i++){
					echo func_get_arg($i)." ";
					$sum+=func_get_arg($i);
				}
				echo "<br/>";
				echo "共计:".$sum;
			}

			dosum(10,20,50,60,300,100,20);
				
--------------------------------------------------------------------------------

		5. 变量函数:就是调用函数使用的不是直接的函数名,而是一个变量。
			如:
				要调用add函数。应该是:add(10,20);
				但是: $name="add"; $name(10,20); 等价于add(10,20);
		
定义一个函数库文件: functions.php
  
 
  在另外文件: 导入: include()  require()
	require() 和 include() 几乎完全一样,除了处理失败的方式不同之外。
		include() 产生一个Warning(适合导入不重要的文件)
		require() 则导致一个 Fatal Error。(导入重要文件)

===========================================================================
四. 变量函数

			 就是函数的名字也是个变量时,就是变量函数。
			  $name="sum";
			  $name(); //等价于 sum( );

	五. 递归函数:
			  递归函数--就是在函数体的代码中出现了调用自己本身函数的语句。注意递归的结束。

	六. 自定义函数库:
			 1. 定义一些常用函数存放在一个php文件中,如:functions.php
			 2. 在我们要使用函数的php文件中使用:
			   include 或require导入函数库文件后即可使用。
				  如:include("functions.php");
				或require("functions.php");
			  
		 
	七. 使用系统函数:
			如何了解一个系统函数并学会使用他
			1.功能:要了解本函数的实现功能(干什么?)
			2.参数:调用这些函数都需要哪些参数(可选和必选)以及类型。
			3.返回值:本函数都有什么返回结果。

			//1.file_get_contents() --将整个文件读入一个字符串
			//2. file_put_contents -- 将一个字符串写入文件				
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值