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()等

猜你喜欢

转载自www.cnblogs.com/yinfa/p/11312700.html
今日推荐