陈力:传智播客古代 珍宝币 泡泡龙游戏开发第26讲:PHP函数
什么是PHP函数,如何通过function定义一个函数,如何理解函数的调用过程。这些问题都是网站建设中经常遇到的程序设计问题。在进行网站建设时,通常要在不同PHP文件之间通过require、require_once、include、include_once 进行函数包含,方便进行函数的调用。本节陈力:传智播客古代 珍宝币 泡泡龙游戏开发第26讲:PHP函数。
一、PHP函数
PHP函数是PHP程序设计语言的核心内容,涉及界面、数据库等内容。函数是为完成某一功能的程序指令(语句)的集合称为函数。在PHP程序设计语言训,函数有自定义函数、系统函数等。
例:输入两个数和一个运算符(加、减、乘、除),计算运算结果。
在没有介绍函数之前,通常通过一段程序进行运算。代码如下:
<html>
</head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$num1=34;
$num2=90;
$oper=”+”;
$res=0;
Switch($oper){
Case “+”:
$res=$num1+num2;
Break;
Case “-”
$res=$num1-num2;
Break;
Case “*”:
$res=$num1*num2;
Break;
Case “/”:
$res=$num1/num2;
Break;
Default:
Echo “运算符出错”;
}
Echo “计算结果为:”.$res;
?>
</html>
如果在贵阳网站建设项目中很多地方都需要这个运算代码。则通过函数可以提高通用性。减少重复的代码,方便程序设计代码的修改。
函数的定义通过function关键字进行定义。格式为function funname(para1,para2){} ,依次为关键字、函数名参数列表,函数内容为完成某一功能的指令集。结果可以通过return语句返回值。没有函数体的函数是豪无意义的。
Function jisuan($num1,$num2,$oper){
$res=0;
Switch($oper){
Case “+”:
$res=$num1+num2;
Break;
Case “-”
$res=$num1-num2;
Break;
Case “*”:
$res=$num1*num2;
Break;
Case “/”:
$res=$num1/num2;
Break;
Default:
Echo “运算符出错”;
}
调用:
Jisuan(30,50,’+’);
如果函数是存放在专用php文件中(funcs.php),则需要引用进来才能使用。方法是require ‘funcs.php’;即可。
注:当PHP程序遇到函数调用时,就会新开一个新栈,执行函数的代码,执行完成后返回继续执行后续的代码。
自定函数的基本语法结构
//参数列表,用处是接受数据.
function 函数名(参数列表){
//函数体;(完成某一个功能的指令集合,这个必须有)
//return 语句; (return 语句主要的用处是返回一个结果,可以没有)
}
二、php页面相互调用函数
(1)a.php页面要使用 b.php 定义的函数,可以用如下指令
require require_once include include_once
举例 require 的用法
<?php
require (‘要引入的文件名’);
$filePath=”abc.php”
require $filePath;
require ‘要引入的文件名(路径)’
?>
例子:
<?php
//第一种用单引号
//require 'b.php';
//第二种.通过变量引入
//$fileName="b.php";
//require $fileName;
//第三种用括号
require ('b.php');
//这里就是调用函数
abc();
echo 'hello 网站建设';
?>
三、require和require_once区别
require和require_once区别是:前者遇到即包含文件,只要有这个语句就会包含文件;后者会判断是否已经包含过了,如果包含过了,则不再包含文件。这样就节省资源,避免重复定义的错误,比如在一个PHP中有两个完全相同的函数的定义。可以用redeclare来重新声明。
Redeclare:再次声明。
例子:
c.php代码:
<?php
Echo “网站建设”;
?>
a.php代码:
<?php
Require “c.php”;
Require “c.php”;
?>
即打印出两次“贵阳网站建设”。如果用require_once “c.php”;则只打印一次。
四、include 和 include_once的区别
Include意思是包含、包括的意思。include 和 include_once的作用和功能都可以把一个页面,包含到另外一个页面中。
基本用法:
<?php
include (‘被包含的文件’);
include ‘被包含的文件’;
include $filePaht;
?>
这两个区别为,前者include遇到即包含文件,后者include_once会判断是否已经包含过了,如果包含过了,则不再包含文件。可以节省资源,避免重复定义的错误。
include 和 require 区别 ( 同时 include_once 和 require_once 区别):相同的地方就是,都是可以引入别的页面。不同的地方是: include 如果出现了错误,会继续执行,require 出现错误,则会终止程序。我们在贵阳网站建设做项目的时候,基本上使用的require_once,在使用 requir_once/require 时, 应当放在 php程序设计代码最前面。
五、如何理解函数的调用过程
<?php
//我们一个计算,+ - * / 的代码集合->函数
//1. function 是一个关键字
//2. jiSuan 函数名(由程序员取名)
//3. $num1,$num2,$oper 是函数的参数列表(形参)
function jiSuan($num1,$num2,$oper){
//$res 表示计算的结果
$res=0;
switch($oper){
case "+":
$res=$num1+$num2;
break;
case "-":
$res=$num1-$num2;
break;
case "*":
$res=$num1*$num2;
break;
case "/":
$res=$num1/$num2;
break;
default:
echo '运算符号有误!';
}
//表示返回一个结果.
return $res;
}
$a=12;
$b=45;
$type="+";
$res=jiSuan($a,$b,$type);
echo "res=".$res;
?>
函数调用的流程图:
为了加深大家对函数调用的理解我们,举例
<?php
function abc($n){
if($n>2){
abc(--$n);
}else{
echo '$n='.$n."<br/>";
}
}
abc(4);
?>
函数自己调用自己-》这个就称为递归调用。
该函数执行后输出:
$n=2
$n=2
$n=3
六、函数使用注意问题
函数的基本结构:
function 函数名(参数列表){
//函数体;
//return 语句;
}
(1)参数列表可以是多个参数。
(2)参数可以多个,数据类型可以是php程序设计语言支持的任意类型。
(3)函数名开头的字母,以_或者A_Z或者a-z ,不要用数字或者特殊字符开头。
(4)函数名不区分大小写。function Abc(){}和 function abc(){} 是同一个函数。
(5)一个自定义函数中的变量是局部的,函数外不生效。
案例:
function abc3()
{
$a=45;
echo 'a='.$a;
}
abc3();
echo 'aa='.$a;//
这里会报一个错误:
Undefined variable: a。表示a没有值。
在php中有三种提示notice(注意)、waring(警告)、error(错误)等。
(6)使用global全局变量的时候,可使用在函数外的变量。
案例如:
$a=12;
function abc3(){
//global $a;//我要在abc3中使用到外层 $a;
$a+=45;
}
abc3();
echo $a;
此时,对$a的引用是通过地址来引用的。
(7)如果在函数中,我们不希望使用某个变量,或者是希望彻底的不再某个变量,则可以使用 unset(变量名) ; 将该变量彻底删除.
$a=12;
function abc3($a){
unset($a);//表示不再abc3函数范围内,不在使用$a,后面需要全新定义;
$a=45;
}
abc3($a);
echo $a;
(8)在php函数中,我们可以给某些参数,赋一个默认的值。
function abc($b,$a=2){
$res=$a+$b;
return $res;
}
$e=70;
echo abc($e).' ||';
echo abc($e,90);
$f=70;
echo abc($e,$f);
(9)php传递变量参数的时候,默认是值传递,如果需要引用(地址)传递,可以使用 &变量名。
【推荐阅读】陈力:传智播客古代 珍宝币 泡泡龙游戏开发第26讲:PHP函数