博客列表 >PHP中函数的声明和调用

PHP中函数的声明和调用

桃儿的博客
桃儿的博客原创
2019年06月13日 17:03:391345浏览

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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议