博主信息
博文 63
粉丝 1
评论 0
访问量 89592
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP中函数的声明和调用
桃儿的博客
原创
1545人浏览过

PHP中函数的声明和调用

语法: function 函数名(参数列表){函数体}

<?php
//声明函数
function sum($a,$b){
   $c=$a+$b;
   // $c 是函数自已的私有变量, 也叫局部变量,对外不可见
   echo $c;
}
//函数调用
sum(5,8);
// 函数内的私有变量,外部不可访问
echo $c;
echo '<hr>';

函数参数:

函数参数可以在声明的时候给形参赋值,也可以调用的时候给实参赋值。

// 函数的参数
// 默认参数
function sum($a = 20, $b = 30)
{
   $c = $a + $b;
   return $c;
}
// 全部赋值,使用自定义的值
echo sum(10, 15), '<br>';
// 只给$a赋值,$b取默认值
echo sum(10), '<br>';
// 全部取默认值
echo sum(), '<br>';
echo '<hr>';

func_num_args();      获取实参的数量

func_get_args();        获取实参组成的数组

func_get_arg();         获取每一个实参(比如:func_get_arg(0); // 第一个实参,func_get_arg(1); // 第二个实参)

array_sum(array)     获取数组之和


计算实参之和

function sum1()
{
   //计算实参之和
   // 方法一:
   $total=0;
   foreach (func_get_args() as $value){
       $total+=$value;
   }
   return $total;
   
   // 方法二:
   return array_sum(func_get_args());
}
echo sum1(10, 20, 30, 40, 50);
echo '<hr>';

变长参数

(php7, 提供了一种可变长参数,代替了替代func_get_args()函数)

function sum2(...$params)
{
   print_r($params);
   // 实现累加操作
   return array_sum($params);
}
echo sum2(1,2,3,4,5);


函数的返回值

 return 返回值
 如果没有return , 默认返回 null

function demo2(){       }
// 检测返回值的类型
echo is_null(demo2()) ? '返回NULL' : '没有返回NULL';

 函数不允许返回多个值
 如果需要返回多个值, 可以将值放在数组中返回

function demo4()
{
   $a = 10;
   $b = 20;
   //    return $a, $b; //这样是错的
   // 可以将结果放在数组中返回
   return [$a, $b];
}
echo '<pre>' . print_r(demo4(),true);


php7中, 可以限定函数的返回类型

function demo5($a, $b) :int
{
   return $a + $b;
}
// 不限定返回类型,输出: 4.7, 限定后返回: 4
echo demo5(1.4, 3.3);


 函数中的变量访问
函数中不能直接访问外部变量

有两种方法可以访问外部变量,关键字global声明和全局变量数组$GLOBALS[ ]。

$site = 'www.php.cn';
function demo1()
{
   // 函数中不能直接访问外部变量
//    return $site;//这样是错的

   //方法一: 在函数中使用global关键字声明一下$site是一个全局变量
   // 这样, 函数中就可识别出这个$site变量
//    global $site;
//    return $site;

   //方法二:使用全局变量数组$GLOBALS[ ];
   // 超全局变量不受作用域限制,可以在脚本的任何地方使用,当然也包括函数内
   return $GLOBALS['site'];
}
echo demo1();
echo '<hr>';


常量也不受作用域的限制,可以在脚本的任何地方直接使用

define('SITE_NAME', 'PHP中文网');
function demo2()
{
   return SITE_NAME;
}
echo demo2();
echo '<hr>';


外部如何访问函数的私有变量

function demo3()
{
   $email = 'admin@php.cn';
   // 通过return 返回私有变量到外部调用者
   return $email;
}
$email=demo3();
echo $email;

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学