函数
function 函数名(参数1,参数2,...){
//函数体
}
可变函数
<?php
function showOne($args){
echo "泥萌{$args}<br>";
}
function showTwo($args){
echo "蜗萌{$args}<br>";
}
$fn = rand(0, 1)% 2? 'showOne': 'showTwo';
$fn('号');
?>
匿名函数
<?php
$fun = function ($args){
echo "泥萌{$args}<br>";
};
$fun('号');
?>
参数传递
值传递
<?php
$str= '泥萌';
function fun($args) {
echo "{$args}<br>";
$args= '蜗萌';
}
fun($str);
echo $str;
?>
地址传递
<?php
$str= '泥萌';
function fun(&$args) {
echo "{$args}<br>";
$args= '蜗萌';
}
fun($str);
echo $str;
?>
参数默认值
- 参数默认值
- 有默认值的写在后面,没有默认值的写在前面
- 在定义函数的时候给形参赋值就是参数的默认值
- 默认值必须是值,不能用变量代替
- 默认值可以使用常量
<?php
function fun($name, $word='泥萌') {
echo "姓名:{$name}<br>";
echo "说说:{$word}<br>";
}
fun('Sunny');
fun('Jerry', '蜗萌');
?>
<?php
define('WORD', '泥萌');
function fun($name, $word=WORD) {
echo "姓名:{$name}<br>";
echo "说说:{$word}<br>";
}
fun('Tomy');
fun('Marry', '蜗萌');
?>
获取所有传递的参数
<?php
function fun() {
echo func_num_args(), '<br>';
$args= func_get_args();
print_r($args);
}
fun('泥萌', '蜗萌');
echo '<br>';
fun('Tomy', 'Sunny', 'Jerry', 'Marry');
?>
参数约束
数组参数展开
<?php
function fun(...$args) {
print_r($args);
}
$name= ['Sunny', 'Jerry', 'Tomy'];
echo '<pre>';
fun(...$name);
?>
<?php
function fun($name, ...$word) {
echo "{$name}<br>";
foreach($word as $v){
echo "{$v}<br>";
}
}
fun('Jerry', '泥萌号', '蜗萌号', '塔萌号');
?>
参数类型约束
<?php
function fun(string $name, int $age) {
echo "{$name}:{$age}<br>";
}
fun('Jerry', 15);
?>
返回值约束
- 返回值约束
- 可以约束:string、int、float、bool、数组
# 约束返回类型是数组
function fun():array {
}
fun();
# 约束return后面不能有返回值
# 必须在7.1以后的版本中才支持
function fun():void { //void是空的意思
return;
}
fun();
<?php
function fun(int $num1, int $num2):int { //必须返回整型
return $num1+ $num2;
}
echo fun(10,21);
?>
return
终止脚本执行
- 终止脚本执行
- return只能中断当前页面,如果有包含文件,只能中断包含文件
- 如果要完全终止脚本执行,使用
exit()
、或die()
# demo.php
echo '泥萌<br>';
require './test.php'; //包含文件
echo '蜗萌<br>';
/*
* 最终输出结果为:
* 泥萌
* Sunny
* 蜗萌
*/
# test.php
echo 'Sunny<br>';
return;
echo 'Jerry<br>';
返回页面结果
# test.php
return array('name'=>'Sunny', 'word'=>'泥萌');
# demo.php
$arr= require './test.php';
print_r($arr);
函数的返回和终止
<?php
function fun1() {
echo 'Sunny';
return;
echo 'Jerry';
}
function fun2(){
return '泥萌';
}
fun1();
echo fun2();
?>