引子
最近有个网站项目,趁着这个机会把php的基础语法回顾下,看的书是《PHP开发入门真功夫》,基本上是茶余饭后看的,感觉这部分时间利用起来还是蛮有效的,以前的话基本上作为时间碎片流失掉了,时间碎片其实是个很可怕的事情,他可以让你的时间变得很琐碎,同时也让你难以有一段相对长的高效时间。最近的奋斗目标该是减小这个碎片时间吧。
知识整理
说到正题,这本书貌似还是挺适合做基础回顾的,讲的东西很浅显。我下面就逐章节说下学到的东西吧,以备以后查找。
第二章:基本语法
1.印象深刻的有include和require的区别:include遇到错误时会出现警告继续运行,但是require会强制中止。
2.另外局部变量可以通过强加global关键字变为全局变量。
第三章:字符串与正则表达式
1.PHP对字符串处理还算是比较完善,个人觉得会用的比较多的有:
字符串拼接(圆点(.)、分隔符({})或者圆点等号(.=)),查找字符串(strstr),分割字符串(explode,split)
2.单引号和双引号的区别:这个一直没搞清,单引号时程序不会判定字符串中是否有变量,而双引号的时候会尝试解析。
3.另外还有一种叫定界符的东西,用来插入大段文本(如果你不想频繁地去使用转义符的话,定界符会将大段字符原样输出),基本用法如下:
echo <<< end 文本文本 end4.正则表达式:正则表达式是个很牛的东西,在这里学习个皮毛。主要有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各有千秋,这里有一篇二者的比较,哪个好就见仁见智了:
第十二章: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配置文件:可以将字符串写在配置文件里,然后统一调用
(虽然看完才一个星期,但是回忆起来好吃力啊,以后像这种读书笔记就应该读完就写!!)