PHP基础之函数

函数

  • 函数的定义
    • 变量名区分大小写
    • 关键字、函数名不区分大小写
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); 

函数的返回和终止

  • 函数的返回和终止
    • return在函数中使用作用
      • 终止函数执行
      • 返回值
<?php
    function fun1() {  
        echo 'Sunny';
        return;
        echo 'Jerry';
    }
    function fun2(){
        return '泥萌';
    }
    fun1();
    echo fun2();
?>
原文地址:https://www.cnblogs.com/SharkJiao/p/13961996.html