PHP基础之函数
函数概念:
函数是用来完成某种特定任务的可重用代码块;
函数可以使程序更具模块化,拥有良好的结构;
函数定义后在程序中可以重复调用;
函数分为内置函数和自定义函数
考点:
变量的作用域和静态变量
延伸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基础之函数的更多相关文章
- python基础——匿名函数
python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...
- python基础——返回函数
python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ...
- python基础——sorted()函数
python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...
- python基础——filter函数
python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...
- Java之--Java语言基础组成—函数
Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...
- 数据分析与展示——Matplotlib基础绘图函数示例
Matplotlib库入门 Matplotlib基础绘图函数示例 pyplot基础图表函数概述 函数 说明 plt.plot(x,y,fmt, ...) 绘制一个坐标图 plt.boxplot(dat ...
- JavaSE语法基础(3)---函数、数组
JavaSE语法基础(3)---函数.数组 函数的概念:实现特定功能的一段代码,可反复使用. 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作. 函 ...
- python基础——匿名函数及递归函数
python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...
- Go语言基础之函数
Go语言基础之函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于“一等公民”. 函数 ...
- 第二周 数据分析之展示 Matplotlib基础绘图函数实例
Pyplot基础图表函数 Pyplot饼图的绘制: Pyplot直方图的绘制: Pyplot极坐标图的绘制: Pyplot散点图的绘制: 单元小结: import numpy as np import ...
随机推荐
- Centos7使用python3连接inception报错解决办法
inception支持mysqldb库但不支持pymysql库,无奈mysqldb库不兼容py3,直接使用pymysql 连接inception报错如下: ValueError: invalid li ...
- Lucene核心数据结构——FST存词典,跳表存倒排或者roarning bitmap 见另外一个文章
Lucene实现倒排表没有使用bitmap,为了效率,lucene使用了一些策略,具体如下:1. 使用FST保存词典,FST可以实现快速的Seek,这种结构在当查询可以表达成自动机时(PrefixQu ...
- group by 分组去重查询
数据库中的数据是这样的: 想要看看有几种类型,可以用group by: select * from activiti.act_ru_task where PROC_INST_ID_ in (selec ...
- VS2017调试程序时 无法启动web iis或者提示ID为***的进程未启动
打开项目的.csproj文件,定位到<WebProjectProperties>,把关于IIS的配置<DevelopmentServerPort>.<Developmen ...
- PHP根据传入的经纬度,和距离范围,返回所有在距离范围内的经纬度的取值范围
/** * 根据传入的经纬度,和距离范围,返回所有在距离范围内的经纬度的取值范围 * @param float $lng 经度 * @param float $lat 纬度 * @param floa ...
- python代码-leetcode1 两数相加
1.两个循环 class Solution: def twoSum(self, nums, target): n=len(nums) for i in range(n): for j in range ...
- lua日期处理函数
function day_step(old_day,step) local y,m,d if("0" ~= string.sub(old_day,6,6)) then ...
- Ubuntu16.04 + cuda9.0 +cudnn7.1(转载)
转载一个详细可用的ubuntu16.04+cuda9.0+cudnn7.1教程. 0 - 参考材料 https://blog.csdn.net/Umi_you/article/details/8026 ...
- warning: deleting 'void *' is undefined 错误
如果我们new出来的指针是一个基本类型,没什么关系,内存还是会被释放的,但是如果是一个类对象指针,在处理过程中转成了void*,那就有问题了,析构函数将不会被调用. 故new的指针类型要和delete ...
- jvm minor gc 为什么比 full gc 快很多
1.minor gc 也需要STW,只不过正常情况下 minor gc STW时间非常短,所以很多人误以为没有STW. 这里的正常情况是,Eden 区产生的新对象大部分被回收了,不需要拷贝. 2.M ...