PHP基础笔记(02)

来源:互联网 发布:单片机课后答案霍孟友 编辑:程序博客网 时间:2024/05/21 20:25

PHP基础笔记(02)

PHP笔记,主要记录PHP与C++、C#之类的语言的一些差异,以及一些有价值的细节。


函数

作为动态类型解释语言,PHP函数拥有相当的灵活性。

  • 函数不需要申明,只需要定义
  • 直接定义的函数为全局函数,函数的调用可以在声明之前
  • 函数可以嵌套,也可以在条件语句中定义函数
  • 嵌套或条件定义的函数只能在定义之后使用
  • 参数传递默认为值传递,引用传递使用&

条件函数

以下代码展示了条件函数的作用域和可调用时机:

$status=true;            //func()尚未创建if($status){    function func() {        echo "function operation";    }            //可以调用func()}               //可以调用func()func();         //function operation

函数嵌套

一下代码展示了嵌套函数的作用域和可调用时机:

function CreateFunc(){    function func(){        echo "operation";    }}                    //func()尚未创建CreateFunc();                    //可以调用func()func();                 //operation

可变长参数

对于可变长参数的函数不需要特殊标记function func(),使用下列函数获取参数:

函数 作用 func_num_args() 返回参数个数 func_get_argn(n) 返回指定参数,n从0开始 func_get_args() 返回包含所有参数的数组

函数内变量的作用域

  • 函数内定义的变量为局部变量
  • 函数内默认使用局部变量
  • 函数内使用全局变量必须显式声明

声明全局变量使用global,比如global $var
一下代码展示了函数内变量的作用域:

$msg='out';function func(){    //echo $msg;       //报错,因为既没有定义局部变量,也没有声明全局变量    $msg='in';//定义了局部$msg    echo $msg;     //显示in    global $msg;//重新声明使用全局$msg    echo $msg;     //显示out    $msg='in';//将全局$msg改为in    echo $msg;     //显示in}echo $msg;         //显示outfunc();echo $msg;         //显示in//整段程序的输出依次为 out in out in in

匿名函数与可变函数(函数指针)

PHP的类型灵活性,几乎使使对象名称和所指向的对象完全分离了。
可变函数相当于C/C++中的函数指针,调用方式也是使用()

function funca($n) return 2*n;function funcb($l) return l*l;$var='funca';$var(3);           //显示6$var='funcb';$var(3);           //显示9

匿名函数即类似fuction($var){}的形式定义:

$func=fuction($name){    echo $name;    }$func("Wadafa");//显示Wadafa,注意$func本身是个变量,所以$不能省略

UNIX时间戳(timestamp)

时间戳起源于UNIX系统,标准时间戳是一个有符号32位整数,记录的是1970年1月1日0点到指定时间所经过的秒数,比如2016/6/2 17:9:14转换为时间戳即1464858554 。32时间戳的最大范围大约到2038年1月19日。
要在PHP中取得正确的本地时间,应该在php.ini中配置正确的时区?(待验证)
32位时间戳在比较旧的数据库和编程语言里似乎很常用,在较新的Windows系统中系统时间已经不使用32位时间戳(2038年问题)。还在使用的主要是文件时间(比如文件创建时间)。

常用内置函数

常用内置函数的命名方式跟C的库函数比较像。

字符串拆分与合并

PHP有个跟VB的split()很类似的字符串拆分函数:
explode(string separator,string str[,int limit])
函数返回一个拆分后的字符串数组。

对应的字符串合成函数:
implode(string separator,array pieces);
函数返回合成后的字符串。

0 0
原创粉丝点击