定义函数
- 定义格式
- 以下代码定义一个生成表格的函数table,并接受三个参数
<?php
/*
$tr_number int 设置表格行数
$td_number int 设置表格列数
$number int 设置起始数值
*/
function table($tr_number,$td_number,$number){
echo "<table align='center' border='1' width=60>";
$td_number_1=$td_number;
while ($tr_number) {
$td_number_1=$td_number;
echo "<tr>";
while($td_number_1){ #打印每行td的循环
echo "<td>";
echo $number;
echo "</td>";
$number++;
$td_number_1--;
}
echo "</tr>";
$tr_number--;
}
echo "</table>";
}
table(2,3,2); #调用函数
?>
运行结果:
-
php的函数调用,可以在函数的声明之前,也可以在函数的声明之后进行调用
-
要接受函数的返回值,可以使用return 语句来进行
函数变量的范围
-
局部变量:局部变量也称为内部变量,是在函数内部声明的变量,其作用域仅限于函数内部,离开该函数后再使用这种变量是非法的。
-
全局变量:
- 在PHP中,声明的全局变量,函数是不能直接使用的,在函数内部直接使用全局变量,相当于重新声明了一个变量,如果要想使用全局变量,就必要要加上global
- 除此之外,还可以使用$GLOBAL数组来进行访问,$GLOBALS是一个超全局变量
声明各种应用形式的函数
- 常规参数的函数(强制类型)
- 伪类型参数的类型
- 引用参数的函数
<?php
$a=100;
function test_1($a){
$a=200;
}
function test_2(&$a){ #设置参数引用,只能传递变量,不能传递值
$a=200;
}
test_1($a);
echo $a ."<br/>"; #没有改变值
test_2($a);
echo $a; #值被改变了
// 运行结果:
// 100
// 200
?>
- 默认参数的函数
- 默认参数必须要放在非默认参数的右侧,否则可能会出错
<?php
function test($name,$age=32){
echo $name."有".$age."岁了";
}
test("张三"); #张三有32岁了
test("李四",20); #李四有20岁了
?>
-
可变参数的函数
- func_get_args()函数,它将所有传递给脚本函数的参数当做一个数组返回
- func_num_args()函数,返回参数的总数
- func_get_arg()函数接受一个数字参数,返回指定的参数。
"; } } more_args("hello","world"); // 输出结果: // 第0个参数:hello // 第1个参数:world ?>
-
回调函数
- 变量函数,
变量函数也称为可变函数。如果一个变量名后有圆括号,PHP将寻找与变量的值同名的函数,并且将尝试执行它。例如,声明一个函数test(),将函数名称字符串“test”赋给变量 $demo。如果直接打印$demo变量,输岀的值一定是字符串“test”,但如果在 $demo变量后加上圆括号“ $demo()”,则为调用对应$demo变量值“test”的函数。这样就可以将不同的函数名称赋给同一个变量,再通过变量去调用这个函数,很类似于面向对象中多态性的应用。
<?php
function test($a,$b){
echo $a+$b;
}
$c="test"; #将函数名称做为字符串赋值给变量c
$c(2,3); #通过变量来调用函数
// 运行结果:
// 5
?>
- 使用变量函数声明和应用回调函数
<?php
function test($fun){
for ($i=10;$i<=30;$i++){
if ($fun($i)){
continue;
}
echo $i." ";
}
}
function three($i){
return $i%3==0;
}
function two($i){
return $i!=strrev($i);
}
test("three"); #输出10-30非3的倍数
echo "<br/>";
test("two"); #输出10-30的回文数
// 运行结果:
// 10 11 13 14 16 17 19 20 22 23 25 26 28 29
// 11 22
?>
- 使用自定义函数库
- require()包括并运行指定文件,库文件只处理了一次(实际上,相当于文件内容替换了require())
- include()包括并运行指定文件,与require()不同的是,include()执行文件时,每次都要进行读取和评估
- include_once()与require_once(),与上面两个语句区别在于如果该文件中的代码已经被包括了,则不会再次包括,用于确保文件只被包括一次
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容