PHP笔记

1、字符串连接符是用点(.)来表示的。

2、注释语句是用双斜杠(//)来表示。

3、变量名通过$符号标识。变量名必须以字母或下划线 “_”开头;变量名只能由字母、数字、以及“_”组成,还能包含汉字;变量名不允许包含空格;在PHP中变量名是区分大小写的。

4、数据类型:PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,PHP会自动把变量转换为自动的数据类型。

(1)布尔类型:用”echo”指令输出时,如果是“true”则输出的是“1”,“false”则什么也不输出。

(2)整型:它可以用十进制、八进制、十六进制指定。八进制,数字前必须加上数字“0”;十六进制,数字前必须加“0x”。

(3)浮点型:可以用小数点或者科学计数法表示。科学计数法可以使用小写的e,也可以使用大写的E。

(4)字符串型:可以用三种方法定义:单引号形式、双引号形式和Heredoc结构形式。

      当双引号中包含变量时,变量会与双引号中的内容连接在一起;当单引号中包含变量时,变量会被当做字符串输出。 

    Heredoc结构形式:首先使用定界符表示字符串(<<<),接着在“<<<“之后提供一个标识符,然后是字符串,最后以提供的这个标识符结束字符串。

    连接字符串使用“.”。

    trim()函数去除一个字符串两端空格;rtrim()去除一个字符串右部空格;ltrim()去除一个字符串左部空格。

    strlen()函数获取字符串的长度;mb_strlen()函数获取字符串中中文长度。

    字符串截取函数:substr()、mb_substr()。

    查找字符串函数:strpos()。

    替换字符串函数:str_replace()。

    格式化字符串函数:sprintf()。

    字符串合并函数:implode()。

    字符串分隔函数:explode()。

    字符串转义函数:addslashes()。

5、定义常量:bool define(string $constant_name, mixed $value[, $case_sensitive = true]),常量名不需要开头的$符号。defined()函数可以判断一个常量是否已经定义。

6、系统常量:

(1)__FILE__ :php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。

(2)__LINE__ :PHP程序文件行数。它可以告诉我们,当前代码在第几行。

(3)PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。

(4)PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。

7、获取常量值:

(1)使用常量名直接获取值。

(2)使用constant()函数,可以动态输出不同的常量。

8、赋值运算:&引用赋值,意味着两个变量都指向同一个数据。

9、错误控制运算符:PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

10、foreach循环语句,常用于遍历数组,一般有两种使用方式:

foreach (数组 as 值){ //执行的任务 }

foreach (数组 as 下标 => 值){ //执行的任务 }

11、PHP有两种数组:索引数组、关联数组。索引数组是指数组的键是整数的数组,关联数组是指数组的键是字符串的数组。

12、可变函数:即通过变量的值来调用函数,因为变量的值是可变的,所以可以通过改变一个变量的值来实现调用不同的函数。可变函数的调用方法为变量名加括号。

13、类和对象:

(1)在类中定义的属性、方法由关键字 public,protected 或者 private 开头,默认为public。受保护的属性、方法与私有属性、方法不允许外部调用。一般通过->对象操作符来访问对象的属性或者方法,对于静态属性则使用::双冒号进行访问。静态方法不需要实例化对象,可以通过类名和::直接调用。静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。

(2)PHP5可以在类中使用__construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数。在子类中如果定义了构造函数则不会调用父类的构造函数,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。PHP5使用__destruct()定义析构函数,指的是当某个对象的所有引用被删除,或者对象被显式的销毁时会执行的函数。

(3)PHP中的重载指的是动态的创建属性与方法。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。

(4)当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断,当需要判断两个变量是否为同一个对象的引用时,可以使用全等运算符===进行判断。

(5)可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个方法来设置属性的值。

(6)可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。

14、正则表达式是对字符串进行操作的一种逻辑公式。

PHP中使用PCRE库函数进行正则匹配。PCRE库函数中,正则匹配模式使用分隔符与元字符组成,分隔符可以是非数字、非反斜线、非空格的任意字符。经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)。如果模式中包含分隔符,则分隔符需要使用反斜杠(\)进行转义,也可以采用preg_quote()进行转义。分隔符后面可以使用模式修饰符,模式修饰符包括:i, m, s, x等。

15、cookie

(1)PHP通过setcookie函数进行cookie的设置,任何从浏览器发回的cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中。PHP中还有一个设置cookie的函数setrawcookie,不同的是不会在发往客户机时,对 cookie 值进行自动 URL 编码。也可以直接使用header方法进行设置cookie。

(2)在PHP中删除cookie也是采用setcookie函数来实现,如:

setcookie('test', '', time()-1); 

也可以直接通过header来删除cookie。

(3)cookie的局限:cookie相对不是太安全,容易被盗用导致cookie欺骗;单个cookie的值最大只能存储4k;每次请求都要进行网络传输,占用带宽。

16、session

(1)session 变量用于存储有关用户会话的信息,或更改用户会话的设置。session是将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,PHP默认情况下session_id是通过cookie来保存的。session可以用来存储多种类型的数据。

(2)使用session先执行session_start方法开启session,然后通过全局变量$_SESSION进行session的读写。

(3)删除某个session值可以使用unset函数,删除后就会从全局变量$_SESSION中去除。可以使用session_destroy函数销毁当前所有session值,当下次访问时$_SESSION为空,但是session_id仍然存在。如果需要立即销毁$_SESSION,可以使用unset函数。

17、PHP具有丰富的文件操作函数,file_get_contents可以将整个文件全部读取到一个字符串中。PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,fread等方法。

PHP中常用来判断文件存在的函数有is_file与file_exists。is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写。

fileowner获得文件的所有者;filectime获取文件的创建时间 ;filemtime获取文件的修改时间;fileatime获取文件的访问时间。

filesize获得文件的大小,文件大小是以字节数表示的。

18、 time函数取得服务器当前时间的时间戳。date函数取得当前的日期。strtotime函数获取某个日期的时间戳。gmdate 函数能格式化一个GMT的日期和时间。

19、PHP的GD(Graphic Device)库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片。PHP默认已经集成了GD库。GD库可以进行多种图形的基本操作,常用的有绘制线条,背景填充,画矩形,绘制文字等。GD库常用在图片加水印,验证码生成等方面。

20、异常处理:PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被执行。当代码中使用了try catch的时候,抛出的异常会在catch中捕获。

PHP具有很多异常处理类,其中Exception是所有异常处理的基类。

21、PHP中一个数据库可能有一个或者多个扩展,其中既有官方的,也有第三方提供的。像Mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行连接与操作。

mysqli_fetch_row 每执行一次,从结果集里依次取一条数据,以一维索引数组形式返回。

mysqli_fetch_array默认状态下执行,从结果集里取一条数据,以一个索引数组和一个关联数组返回。

mysqli_fetch_assoc每执行一次,从结果集里依次取一条数据,以一维关联数组形式返回。

mysqli_fetch_object每执行一次,从结果集中取得一行作为对象返回。

phpmyadmin中文显示“?”乱码http://blog.csdn.net/u012247511/article/details/45696097

posted on 2017-05-05 17:23  hnzzwxl  阅读(112)  评论(0编辑  收藏  举报