函数的分类:
- 根据是否是系统自带的,函数分为系统函数和自定义函数
- 根据是否具有返回值:带返回值的函数和执行过程的函数
- 根据结构的不同分类
自定义函数:
<?PHP
//自定义函数
function myTest(){
echo "自定义函数";
}
myTest();
?>
具有参数的自定义函数:
<?php
//具有参数的自定义函数,声明三个参数,参数之间使用逗号隔开
function table($tableName, $row, $col){
echo "<table border='1' align='center' width='600'>";
echo "<caption><h1>$tableName</h1></caption>"; //使用第一个参数$tableName输出表名
for($out=0; $out<$row; $out++){ //使用第二个参数$row指定表行数
$bgcolor = $out%2 == 0? "#FFFFF":"#DDDDD";
echo "<tr bgcolor=".$bgcolor.">";
for($in=0; $in<$col; $in++){ //使用第三个参数$in指定表列数
echo "<td>".($out*$col+$in)."</td>";
}
echo "</tr>";
}
echo "</table >";
}
table("三行四列的表格",3,4);
table("一行六列",1,6);
?>
return
<?php
/*
函数的返回值:return
return()是语言结构而不是函数,仅在参数包含表达式时才需要用括号将其括起来。
当返回一个变量时通常不用括号,这样可以降低PHP的负担。
*/
function ret(){
$str = "中国我爱您!";
return $str; //return是返回值,函数内只能有一个返回值
}
$return = ret();
echo $return; //echo只输出一行,且直接输出
?>
全局变量和局部变量
<?php
/*
局部变量和全局变量
*/
$global = "我是全局变量";
function local(){
$local = "我是局部变量";
echo $local;
//echo $global; //全局变量只能在函数外调用
}
//echo $local; //局部变量不能在函数外调用
local();
echo $global;
?>
静态变量
<?php
//静态变量
function st(){
static $sum = 0; //static静态变量只会初始化一次
echo $st;
$sum ++;
}
st();
st();
?>
引用参数
<?php
//引用参数的函数
$var = 100;
function quote($arg){ //未在函数中的参数前加上&,则是未声明参数为引用类型
$arg = 200; //所以参数传递的值是不会发生改变的,因为他们的内存地址不同,所以不会影响
}
echo quote($var);
echo $var;
$var1 = 100;
function quote1(&$arg1){ //在函数中的参数前加上&,则是声明参数为引用类型
$arg1 = 200; //所以参数传递的值是会发生改变的,因为他们的内存地址相同,所以会在函数中为$var重新赋值
}
echo quote1($var1);
echo $var1;
?>
默认参数的函数
<?php
//默认参数的函数
function person($name='张三',$age){
echo "我的名字是:".$name.",年龄是:".$age;
}
person("张四",20); //调用函数时必须传递两个参数才能进行输出,否则会报错
?>
递归函数
<?php
//递归函数
function test($n){
echo $n." ";
if($n>0){
test($n-1);
}else{
echo "<-->";
}
echo $n." ";
}
test(2);
?>
自定义函数库
<?php
/*
使用自定义函数库
区分require()与include()
*/
require("testA.php");
echo "我爱你!";
echo '<br>';
require("testA.php");
echo "您好!";
require_once("testA.php");
echo "我爱你!";
echo '<br>';
require_once("testA.php");
include("testA.php");
echo "我爱你!";
echo '<br>';
include("testA.php");
echo "您好!";
include_once("testA.php");
echo "我爱你!";
echo '<br>';
include_once("testA.php");
?>