1.变量的作用域也称为变量的范围,变量的范围即它定义的上下文背景(也是它的生效范围)。大部分php变量只有一个单独的范围。这个单独的范围跨度同样包含了include和require引入的文件。
函数内的变量是局部变量,如果想在函数内调用全局变量,可以使用global关键字或者使用$GLOBALS以及其他超全局数组。
静态变量,仅在局部函数域中存在,但当程序执行离开此作用域时,其值不会消失。
static 关键字,仅初始化一次,初始化时需要赋值,每次执行函数该值会保留,static修饰的变量是局部的,只在函数内有效,可以记录函数的调用次数,从而可以在某些条件下终止递归。
此部分内容还可以参考:《PHP基础语法》
真题测试:
$count = 5; function get_count(){ static $count; return $count++; } echo $count; $count++; echo get_count(); echo get_count();
结果是51;
分析:
$count = 5; function get_count(){ static $count; //静态变量$count与外部的全部变量$count无关,这里初始值是null return $count++; //第一次调用返回null,然后null+1为1 } echo $count; //输出5 $count++; //无输出 echo get_count(); //输入null echo get_count(); //静态变量$count初始化一次,值一直保留。第二次调用函数输出1
2.函数的参数
默认情况下,函数参数是通过值传递的;如果希望函数修改它的值,可以通过引用传递参数。
$a = 10; function myFun($a){ $a = 12; } myFun($a); echo $a; //输出结果仍为10 echo '<hr>'; $b = 100; function myFun1(&$b){ $b = 200; } myFun1($b); echo $b; //输出结果是200 函数使用引用变量,其值被改变
3.函数的返回值
值通过可选的返回语句(return)返回;
可以返回包括数组和对象的任意类型;
返回语句会中止函数的执行,将控制权交给函数调用处;(也就是函数执行到return后,函数后面的部分将不会再执行)
省略return,返回值为null,不可有多个返回值。(如果有多个值可以用数组进行返回)
4.函数的引用返回
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符 &。
function &myFun(){ static $b = 10; //这里必须用static静态变量,普通变量实现不了这个效果 return $b; } echo myFun(); //输出结果10 $a = &myFun(); //引用返回 $a = 100; echo myFun(); //输出结果100
5.外部文件的导入
include/require语句包含并运行指定文件
如果给出路径名按照路径来找,否则从include_path(这个值是在php.ini里面设置)里面查找
如果include_path中也没有,则从调用脚本文件所在的目录和当前工作目录中查找
当一个文件被包含时,其中所包含的代码也继承了include所在行的变量范围
加载过程中未找到文件则include结构会发出一个警告;这一点和require不同,后者会发出一个致命错误
require在出错时会产生E_COMPILE_ERROR级别的错误。换句话说将导致脚本中止而include只产生警告(E_WARNING),脚本会继续执行。
6.系统内置函数
时间日期函数 date()、strtotime()、mktime()、time()、microtime()、date_default_timezone_set()
打印函数 print() printf() print_r() echo sprintf() var_dump() var_export()
IP处理函数 ip2long() long2ip()
字符串函数
数组函数
常用内置函数整理:常用函数.xls
参考其他内容: