函数概念:

函数是用来完成某种特定任务的可重用代码块;

函数可以使程序更具模块化,拥有良好的结构;

函数定义后在程序中可以重复调用;

函数分为内置函数和自定义函数

考点:

变量的作用域和静态变量

延伸1,函数的参数及参数的引用传递。

延伸2,函数的返回值及引用返回。

延伸3,外部文件的导入。

延伸4,系统内置函数。

1.变量的作用域

变量的作用域也称变量的范围,变量的范围即它定义的上下文背景(也是它的生效范围)。大部分的PHP变量只有一个单独的范围。这个单独的范围跨度同样包含了include和require引入的文件。

<?php

$c = 5;//全局变量

function get_count()

{

  $c;//局部变量$c=null;

  return $c;

}

echo $c;//5

echo get_count();//null

global关键字

<?php

$c = 5;//全局变量

function get_count()

{

  global $c;//全局变量$c=5;

  $GLOBALS['c'];//超全局变量,可以直接拿来用。

  return $c;

}

echo $c;//5

echo get_count();//5

2.静态变量static

静态变量仅在局部函数域中存在,但当程序执行离开此作用时,其值并不会消失。

特点:1.仅初始化一次。2.初始化时需要赋值。3.每次执行函数该值会保留。4.static修饰的变量是局部的,仅在函数内部有效。5.可以记录函数的调用次数,从而可以在某些条件下终止递归。

function myFunc()

{

  static $a = 1;//静态变量初始化

  $a++;

  return $a;

}

myFunc();//2

myFunc();//3

延伸1,函数的参数及参数的引用传递。

默认情况下,函数参数通过值传递。

如果希望允许函数修改它的值,必须通过引用传递参数。

$a = 1;

function myFun($a){//值传递

  $a = 2;

}

myFun($a);

echo $a;//1

$a = 1;

function myFun(&$a){//引用传递

  $a = 2;

}

myFun($a);

echo $a;//2

延伸2,函数的返回值及引用返回。

只通过使用可选的返回语句(return)返回。

可以返回包括数组和对象的任意类型。

返回语句中止函数执行,将控制权教会函数调用处。

省略return,返回值为null,不可以有多个返回值。

引用返回定义:从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符&。

function &mgFUNC()

{

  static $b = 10;

  return $b;

}

$a = mgFunc();//10

$a = &mgFunc();//引用

$a = 100;

echo mgFunc();//100

延伸3,外部文件的导入。

include/require语句包含并运行指定文件。

如果给出路径名按照路经来找,否则从include_path中查找;如果include_path中也没有,则从调用脚本文件所在的目录和当前工作目录下寻找。

当一个文件被包含时,其中所包含的代码继承了include所在行的变范围。

区别:

1,加在过程中未找到文件则include结构会发出一条警告;这一点和require不同,后者会翻出一个致命错误;require在出错时产生E_COMPILE_ERROR级别的错误。换句话说将导致脚本中止而include只产生警告(E_WARNING)。

2,require(include)/require_one(include_one)唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含。

延伸4,系统内置函数

1.时间日期函数

date()\strtotime()\mktime()\time()\microtime()\date_default_timezone_set().

2.打印处理

print()(语句)\printf()\print_r()\echo(语句)\sprintf()\var_dump()\var_export().

3.序列化及反序列化函数

serialize()\unserialize()

4.字符串处理函数

implode()\explode()\join()\strrev()\trim()\ltrim()\rtrim()\stratr()\number_format()...

5.数组处理函数

array_keys()\array_values()\array_diff()\array_intersect()\array_merge()\array_shift()\array_unshift()\array_pop()\array_push()\sort()等

PHP基础之函数的更多相关文章

  1. python基础——匿名函数

    python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便.  在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...

  2. python基础——返回函数

    python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回.  我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ...

  3. python基础——sorted()函数

    python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...

  4. python基础——filter函数

    python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...

  5. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

  6. 数据分析与展示——Matplotlib基础绘图函数示例

    Matplotlib库入门 Matplotlib基础绘图函数示例 pyplot基础图表函数概述 函数 说明 plt.plot(x,y,fmt, ...) 绘制一个坐标图 plt.boxplot(dat ...

  7. JavaSE语法基础(3)---函数、数组

    JavaSE语法基础(3)---函数.数组 函数的概念:实现特定功能的一段代码,可反复使用. 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作. 函 ...

  8. python基础——匿名函数及递归函数

    python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...

  9. Go语言基础之函数

    Go语言基础之函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于“一等公民”. 函数 ...

  10. 第二周 数据分析之展示 Matplotlib基础绘图函数实例

    Pyplot基础图表函数 Pyplot饼图的绘制: Pyplot直方图的绘制: Pyplot极坐标图的绘制: Pyplot散点图的绘制: 单元小结: import numpy as np import ...

随机推荐

  1. [bzoj 5332][SDOI2018]旧试题

    传送门 Description \[ \sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^Cd(ijk) (\mathrm{mod\:} 10^9+7) \] 其中 \(d(ijk) ...

  2. vue中子组件传值给父组件

    index.js 子组件 父组件

  3. Chrome接口调试工具

    网页接口测试工具开发背景 在web开发中,服务器端和客户端的开发和测试必不可少,但是测试的工作往往需要服务器端完成之后,客户端才能进行测试,这无疑延后了测试流程,导致服务器端开发完成后,无法进行充分的 ...

  4. Mininet系列实验(二):Mininet可视化应用

    1 实验目的 该实验通过Mininet学习miniedit可视化操作,可直接在界面上编辑任意想要的拓扑,生成python自定义拓扑脚本,简单方便.在实验过程中,可以了解以下方面的知识: Miniedi ...

  5. Java设计模式:代理模式(转)

    代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一 ...

  6. 90后外挂开发者:已经有许多主播在我这里在外挂,我月入50W

    绝地求生上线不到一年已经火爆全球,玩家们表示再差的优化也抵挡不住我们玩游戏的热情,近日,各大平台主播糯米油条五五开等人的开挂实锤闹得沸沸扬扬,玩家之间刮起了一阵反击外挂的风暴. 俗话说得好,没有买卖就 ...

  7. React之概述(待续)

    原文链接 MDN上有关JavaScript的内容 箭头函数, 类, 模板字符串, let, const Babel REPL

  8. DN创建

    1. 参考采购订单创建DN : BAPI_OUTB_DELIVERY_CREATE_STO FUNCTION zmmfm0202. *"--------------------------- ...

  9. LeetCode_70. Climbing Stairs

    70. Climbing Stairs Easy You are climbing a stair case. It takes n steps to reach to the top. Each t ...

  10. iOS compile sources问题

    以前xcode compile sources 这里是自动生成的,升级到新版本之后,我删掉这里的列表,就没法生成了.导致项目无法运行. 解决方法就是:自己手动添加.h文件