Blogger Information
Blog 63
fans 1
comment 0
visits 75923
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP中函数的声明和调用
桃儿的博客
Original
1341 people have browsed it

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;

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post