search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

首页课程PHP Fun Breakthrough ClassIntroduction to custom functions

Introduction to custom functions

目录列表

自定义函数介绍

PHP提供了功能强大的函数,但这远远满足不了需要,程序员可以根据需要自己创建函数。本节就开始学习创建函数的方法。

我们在实际开发过程当中需要有很多功能都需要反复使用到,而这些反复需要使用到的功能,我们能定义成功能(函数),就尽可能定义成功能(函数)。使用的时候,吼一下它的名字即可。

那我们来学一下自定义函数的语法规定,语法规定如下:

function 函数名([参数名1[=值1], 参数名2[=值2], 参数名n[=值n]])
{
      // 函数中的功能体
       
    // return 返回值
}
//调用函数
函数名()

上面的语法规定中发现了如下特点,产生如下语未能规定:

  • 函数以function开始

  • function后面接空格,空格后接函数名

  • 函数名与变量命名规则基本一样,但是不同的是:函数名不区分大小写(变量命名规则不记得的,回头看看)

  • 所谓参数其实就是变量

  • 如果有参数的话,参数后可以接(=)等号,等号接默认值。参数值也是用[](中括号)括起来的,代表选填

  • 函数后的参数变量,主要功能是把函数体外的变量值,传入函数体内来使用,函数体的变量和函数体外的变量通常是两个不同的变量。

  • 函数中的具体功能(功能体)用大括号括起来,代表这是一个函数的功能区间

  • 函数可以有返回值也可以没有返回值,用[](中括号)括起来的,代表选填。

  • return后接空格,空格后接返回值,若有return,return后的代码均不执行。

  • 函数的执行没有顺序关系,可以在定义处之前的位置调用

  • 函数不能被定义两次,即函数不能被重载

<?php function php_cn(){ "我爱PHP中文网";}echo php_cn(); ?> 这个代码会不会在页面中显示"我爱PHP中文网"吗嘛?

自定义函数

切记:你也要多写代码来进行实验!

1.函数是条狗,哪里调用哪里哪,它就跟着你走:

<?php

function php_cn(){
   echo 'PHP中文网';
}
php_cn(); // PHP中文网
php_cn();  // PHP中文网
php_cn();  // PHP中文网

?>

2.函数名只能是字母,数字,下划线的组合,并且之间不能包含空格,数字不能放在变量名首位:

<?php
function 1demo(){ // 报错
    
}
?>

3. 函数名与变量命名规则一样,但是不同的是:函数名不区分大小写:

<?php

function Demo(){

   echo 'PHP中文网<br />';
}

demo(); // PHP中文网
Demo(); // PHP中文网
DEMO(); // PHP中文网

?>

4. 函数体的参数若是定义了,未传参数,代码会报错:

<?php
//定义函数名为test,必须要传入一个参数
function test($hello){

}
test();
?>

5. 函数后的参数如果有默认值,参数可以不填,代码也不会报错:

<?php
function test( $arg = 10){
       echo $arg;
}
test(); // 10
echo '<br>';
test(88); // 88

?>

6. 函数后的参数可以写多个:

<?php
function test( $a , $b = 20 , $c = 30){
       echo $a + $b + $c;
}
test( 1 , 2 , 3 ); // 6
?>

7. 函数后如果有默认值和无默认值的参数,通常把无默认值的参数写在最前面:

<?php
function test( $a = 20 , $b = 30 , $c ){
       echo $a + $b + $c;
}
//重点:重点看这一行执行一下
test(  ,  , 8 ); // 报错
?>

8. 函数体的变量与函数体外的变量没有关系:

<?php
//定义变量$hello的值为10
$hello = 10;
//函数后的参数(形式上的参数,参数)处写上变量名为$hello
function demo( $hello ){
   //形参带入了函数体内,函数体内变量$hello 改为了 250
   $hello = 250;
   //输入2个250相加的结果
   echo $hello + $hello;
}
//将函数体外的变量$hello,传入变量的参数处(实际传入的参数,实参),显示出的结果为500
demo($hello);
//此处$hello的值输出,依然为10
echo $hello;
?>

9. 函数体中若有return,return 后的代码不执行:

<?php

function demo(){
   echo 111;
   return;
   echo 222;
}
demo(); // 111
?>

10. 函数执行完后,return 可把函数体内的值,带带函数体外:

<?php

//定义一条函数狗
function php_cn(){
   $foo = 5;
   $bar = 6;
   $result =  $foo + $bar;
   //将$result的结果进行返回
   return $result;
}
//调用php_cn()这个函数,$foo和$bar相加的$result就会返回回来给到变量$piao
$piao = php_cn();
//输出$piao的结果,果真为11
echo $piao;

?>

11. 函数的执行没有顺序关系,可以在定义处之前的位置调用:

<?php

demo();
function demo(){
   $str = '我爱';
   $str .= 'PHP中文网';

   echo $str;
}

demo();
?>

11. 函数不能重载:

<?php

function demo(){
echo 123;
}
function demo(){
echo 123;
}
demo() // 报错
//试试会报错吗?
?>



以下哪些自定义函数是正确的?