Day15 PHP函数介绍

什麽是函数?
函数就是一个功能~
在写程序时,相同或类似逻辑的程序码如果很常使用,那麽一直重复写一样的程序码,一直复制贴上很没有效率,函数就是将这些常用逻辑的程序码独立成一个个的个体,方便重复使用,达到减少程序码档案大小、增加可读性、加快开发速度的功用。

is_float()、isset()、unset()、count()、mt_rand() 等都是函数,PHP内建的函数超过上千个,当然不太可能所有都用得到,有些也功能相近或是可以替代,写法不同而已,通常
我们要用的时候再去找,只要记得几个常用的就好,或是没有你想要功能的函数,那麽就自己写一个来自订函数,但大部份的时候,能够调用现成的函数帮我们实现功能上的需求。

函数的命名规则

在PHP中,函数名称的命名有规范,不过跟之前介绍过的跟常数、变数的命名规则一样,基本命名规则已经有介绍过,这边再来帮大家复习一次~~~

  • 函数名称不可以使用PHP内所定义的「关键字(keyword)」来命名(不可以和已经存在的函数EX:系统函数和自定义函数重名)
  • 名称的开头必须为英文字母(A-Z & a-z)、底线(_)
  • 後面可以接长度不限的英文字母、数字或是底线
  • 名称区分大小写 Ex. Winnie、WINNie、wINnIE 等是不同的名称
  • 函数声明要有意义

PS.在同样的变数作用域(Scope)中,函数名称、变数名称、常数名称不可以完全相同,必须是唯一的(不能出现同样名称的函数变数常数)

参数

所以我们把函数加上参数,让程序码能给函数添加更多的功能,参数类似变量。

return语句的作用:回传值

具有return语句的函数就是有返回值的函数
没有return的语句就是执行过程函数

今天程序计算完之後,要存进资料库里面,所以需要在函数的最後一行加上回传值(return) 让函数将计算完成後回传.给其他程序码去写入资料库,让函数返回一个值。

  1. 如果函数中存在return并且执行了该return语句,那麽该函数的执行结果就可以被变量接收。
  2. 如果函数的执行过程中执行了return语句,那麽後续代码都不再执行。
  3. 注意:一个函数中可以有多个return语句,但是程序只能执行一个,一般多个return语句都是使用分支结构(if)分开存放。
  4. echo 和 return 区别:要分清楚函数中想要变数接收运算结果一定要return,echo没用唷~

建立函数

基本格式:

    function 函数名(参数){
        PHP语句 (函数体)
    }
  1. function 不能省略
  2. 函数的特徵:
    • 函数定义之後,不调用不执行。
    • 函数调用不分先後,因为PHP解析器在执行这个页面代码之前就已经预先加载了函数的内容。
  3. 参数:在设计函数时,为了避免呼叫函数时没有传入参数值,因此我们可以替函数的参数加上预设值。

型别

强型别语言中,型别约束是语法上的要求(定义一个变数的时候,必须指定其型别,并且以後该变数也只能储存该型别资料)。

  • 参数资料型别
    限制能传递进来的资料型别
  • 回传值资料型别
    限制回传值的资料型别
    PS.要PHP7以上的版本才能使用

这是比较复杂的格式:

    function 函数名称(型别1 参数1 = 预设值1,型别2 参数2 = 预设值2,....):回传值型别{
        //函数也可以没有回传值型别,就把「:回传值型别」的部分去掉即可
        函数内容;
        return 回传值;//函数也可以不回传任何值,没有回传值那就没有这行
    }

函数的变量作用域

  • 局部变量
    • 在函数中定义的变量就是局部变量,作用范围仅限函数内
    • 参数也是函数内部的变量,也就是局部变量
  • 全局变量
    1. 普通变量
      • 在函数外部声明的变量,其作用范围就是当前php页面部分,函数内部无法使用
    2. 全局变量
      • 在函数的内部和外部都可以访问和使用的变量就是全局变量
      • 实现全局变量方法1:
        • 在函数外部具有一个变量且函数内部也具有一个同名变量
        • 在函数内部的同名变量前使用global关键字修饰,既可以实现全局变量
        • 注意:global声明全局变量时禁止赋值!!!!
      • 实现全局变量方法2:
        $GLOBALS
        • 在函数内部可以使用$GLOBALS[变量名]的方式直接调用函数外部的变量值,此时函数内外都可以使用,实现了另一种方式的全局变量。
          函数小例子:
<?php
//全局变量
//在函数的外部定义一个变量
$str = 'HI~~ 你好脸熟,我们认识吗?';

//定义一个函数
function sayHi()
{
    //在函数内部使用global关键字声明一个与外部同名的变量 
    global $str;
    echo $str;
    //尝试改变$str的值
    $str = ' 神经病吗你???? ';
}
echo '这是第一个在函数外部输出:' . $str;
echo '<hr/>';
echo '这是在函数内部输出' . sayHi();
echo '<hr/>';
echo '这是第二个在函数外部输出:' . $str;
echo '<hr/>';
$str = '我是你的梦魇';
sayHi();

echo '<hr/>';

function str()
{
    //局部变量
    $name = 'Winnie';
    global $name;
    echo $name;
}
$name = 'Bear';
str();
echo '<hr/>';
var_dump($name);

静态变量

在函数内部使用static声明的变量就是静态变量

  • 静态变量的特徵
  1. 静态变量只会被初始化一次
  2. 静态变量在函数运行结束後不会被回收
  3. 静态变量一般用於计算函数调用次数。
<?php
//静态变量   统计函数调用的次数
function addNum()
{
    //静态变量  只会被初始化一次
    static $a = 1;
    echo $a . '<br/>';
    $a++;
}
addNum(); //1
addNum(); //2
addNum(); //3

<<:  【Day 15】- 汇率什麽的。爬! (实战汇率爬虫 on chrome)

>>:  Android Studio初学笔记-Day15-ListView

DAY16 签到按钮功能实现

if event.postback.data[0] == "签" and eve...

[Day 4] 阿嬷都看得懂的 CSS, JavaScript 在干嘛

阿嬷都看得懂的 CSS, JavaScript 在干嘛 那麽,我们要怎麽看 CSS 扮演的角色呢? ...

职位描述 (job description)

职位描述是职位设计的输出之一,它考虑了“分工”的原则,需要人力资源部和研发部进行协作。职位描述是确定...

让你用 ZK快速开发的环境设定

本系列文章范例专案 本系列文章中所有的设定与范例程序码都可以在 Github 上的范例专案 zkqu...

创建App·小总结

创建App·总结 在之前的27天中,每天发一篇日志,讲述自己的过程,然而像是重温知识,但也有一些自己...