函数概念:

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

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

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

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

考点:

变量的作用域和静态变量

延伸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. PHP 之源代码加密与解密,加密后可直接运行

    方式一: <?php /** * Created by PhpStorm. * User: Yang * Date: 2019/10/16 * Time: 10:25 */ class Enci ...

  2. redis能否对set数据的每个member设置过期时间

    第一种方法,拆分成多个key,每个key设置过期时间.第二种方法改为hashMap存储,加一个过期时间的字段.可以用sorted set,把要过期的member和key的信息放在sorted set的 ...

  3. SpringBoot面试题 转(已迁移到java相关知识点)

    ## 什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的 ...

  4. EXCEL公式中如何表示回车符?

    问题: 将 id credttm cdno cdamt cashbrid cashrole note 转换为 "id  credttm  cdno   cdamt  cashbrid  ca ...

  5. Docker学习知识图

    这个图更能明白他们之间的关系   文章来源:外星人来地球 欢迎关注,有问题一起学习欢迎留言.评论

  6. AndroidStudio制作Nine-Patch【.9】图片

    使用AndroidStudio制作Nine-Patch[.9]图片,以及为什么要制作Nine-Patch[.9]图片[以聊天气泡为例]   本文链接:https://blog.csdn.net/She ...

  7. python 适合的才是最好的

    群里老有人问最新的破解码最新的包,最新的就是最好的吗? 今天说一下这些新手的坑: numpy 最好使用的版本是1.13.3  而非新的1.17.0 pandas最好使用的版本是0.18.0 而非新的0 ...

  8. osg fbx 模型结构操作

    osg::Node* TeslaManage::findOsgNodeByName(QString &nodeNme) { osg::Node* findNode = NULL; std::v ...

  9. Qt编写输入法V2019终极版

    一.前言 之前写过的V2018版本的输入法,本来已经很完善了,不打算更新升级了,最近有个朋友找我定制一个输入法,需要高仿一个苹果MAC电脑的输入法,MAC操作系统的审美无疑是相当棒的,于是乎直接拿以前 ...

  10. python数据可视化:pyecharts

    发现了一个做数据可视化非常好的库:pyecharts.非常便捷好用,大力推荐!! 官方介绍:pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 ...