【PHP】php基础回顾

引子

最近有个网站项目,趁着这个机会把php的基础语法回顾下,看的书是《PHP开发入门真功夫》,基本上是茶余饭后看的,感觉这部分时间利用起来还是蛮有效的,以前的话基本上作为时间碎片流失掉了,时间碎片其实是个很可怕的事情,他可以让你的时间变得很琐碎,同时也让你难以有一段相对长的高效时间。最近的奋斗目标该是减小这个碎片时间吧。

知识整理

说到正题,这本书貌似还是挺适合做基础回顾的,讲的东西很浅显。我下面就逐章节说下学到的东西吧,以备以后查找。

第二章:基本语法

1.印象深刻的有include和require的区别:include遇到错误时会出现警告继续运行,但是require会强制中止。

2.另外局部变量可以通过强加global关键字变为全局变量。

第三章:字符串与正则表达式

1.PHP对字符串处理还算是比较完善,个人觉得会用的比较多的有:

字符串拼接(圆点(.)、分隔符({})或者圆点等号(.=)),查找字符串(strstr),分割字符串(explode,split)

2.单引号和双引号的区别:这个一直没搞清,单引号时程序不会判定字符串中是否有变量,而双引号的时候会尝试解析。

3.另外还有一种叫定界符的东西,用来插入大段文本(如果你不想频繁地去使用转义符的话,定界符会将大段字符原样输出),基本用法如下:

echo <<<end

文本文本

end

4.正则表达式:正则表达式是个很牛的东西,在这里学习个皮毛。主要有POSIX风格和Perl风格。

POSIX风格: ^[A-Z][0-9]$表示两位字符,第一位是大写字母,第二位是数字;^[a-zA-Z0-9]{6,10}$表示6到10位字符串。这是PHP默认风格。

Perl风格:/^\D{1,}$/表示的是非数字字符的字符串。对于Perl风格,函数名前要加preg_,比如preg_split();

5.觉得很有必要去把各种表单验证中的正则表达式看懂。

第四章:函数

1.使用函数默认参数时要将有默认参数的变量放在最后一个。

2.引用传递需要在函数调用时的变量前加一个&

3.php内置时间函数:date(“Y年n月j日 H:i:s”)

第五章:数组

1.foreach循环结构:foreach($ball as $key=>$value)....

2.sort()和asort(),不同之处在于后者会保持键名和值的对应关系。

3.range()函数快速创建数组。如:$number=range(0,3)

4.数组合并:array_merge(),数组翻转:array_reverse(),对调键名和值:array_flip()

第六章:文件操作

1.读取函数:fopen()打开文件,注意读写标志;fread()读取整个文件;fgets()读取一行;fgetc()读取一个字符;file()读取一个文件并写入一个数组中,每一行作为一个key对应的内容。

2.写入及关闭:fwrite()写入文件;fclose()关闭文件;unlink()删除文件。

3.目录操作:mkdir(), opendir(), readdir(), closedir(), rmdir()

4.文件上传:表单标签中加入enctype="multipart/form-data",也可以是其他。可以用$_FILES访问文件。

第七章:PHP5中的面向对象

1.构造方法:function __construct(); 析构方法:function __destruct();

2.static修饰符可以将变量或者函数变为全局的。然后可以用::访问。

3.关于抽象类和接口:抽象类和普通类相似,有成员属性和成员方法,区别在于不能被实例化,只能用于继承。当某个类要继承于抽象类时,必须包含该抽象类中定义的所有方法。使用关键字extends。

而接口使用关键字interface定义,使用implements实现,接口没有数据成员,只包含一些空的成员方法和一些类常量,并且没有构造函数。

一个类可以实现多个接口,但是一个类却只能继承于一个抽象类。

第八章:session和cookie

1.session的创建和销毁:session_start(); session_destroy();

2.cookie的创建和销毁:setcookie(“name”,”str”,time()+3600); 销毁就是将值置为空。

3.二者区别:session存放在服务器端,而cookie存放在客户端;session的安全性要高一些;session原则上可以不依赖于cookie,但是大部分情况下还是有对应的cookie值存放在本地。

第九章:错误及异常处理

try...catch...的使用

第十章:访问MySql数据库

1.mysqli类扩展了数据库连接功能。

2.预准备语句的使用,prepare,execute。

3.绑定参数bind_param, 绑定结果bind_result。

第十一章:数据库抽象层

1.数据库抽象层的特点就是:不管后端是什么数据库,存取数据的方式都是一样。也就是说,当我们的项目需要换个数据库时,不用去修改代码,只需修改下连接数据库的语句即可。

2.PDO和ADODB各有千秋,这里有一篇二者的比较,哪个好就见仁见智了:http://www.cnblogs.com/hooray/archive/2011/03/21/1990034.html

第十二章:PHP网络应用

关于Socket、DNS、FTP、mail,php都给出了支持,可以很方便地操作。

第十三章:Smarty模板

1.smarty确实是个好东西,最近做的项目里,设计师将做好的网页给我,我几乎不用怎么做调整就可以把原始网页直接拿来使用,当然这一切都是smarty的功劳。

2.传递参数时使用assign操作,最后用display显示出来。

3.smarty中的foreach结构:

{foreach from=$fourseasons item=season key=index}

{$index}:{season}<hr>

{/foreach}

4.smarty中的section:

{section name=varName loop=$arrayName start=startindex step=stepNum max=num show=boolean}

循环体

{/section}

5.修饰符:例如{$sex|default:”男“}

6.smarty配置文件:可以将字符串写在配置文件里,然后统一调用

(虽然看完才一个星期,但是回忆起来好吃力啊,以后像这种读书笔记就应该读完就写!!)