PHP基础语法2

  1. 数组

PHP有两种数组:索引数组、关联数组。

 

  1. 函数

自定义函数

自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰

返回值

使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL

可变函数

所谓可变函数,即通过变量的值来调用函数,因为变量的值是可变的,所以可以通过改变一个变量的值来实现调用不同的函数。经常会用在回调函数、函数列表,或者根据动态参数来调用不同的函数。可变函数的调用方法为变量名加括号。

内置函数

内置函数指的是PHP默认支持的函数,PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、sessioncookie处理等。

内置函数str_replace可以实现字符串的替换

判断函数是否存在

经常会先使用function_exists判断一下函数是否存在。

同样的method_exists可以用来检测类的方法是否存在

  1. 类和面向对象

构造函数

对象实例化的时候自动调用

析构函数

如果类对象设置成了空 就自动调用了析构函数 比如$name=null;

通常被用于清理程序使用的资源

 

访问控制

Static静态关键字

静态方法中,$this伪变量不允许使用。可以使用selfparentstatic在内部调用静态方法与属性。

对象继承

 

重载

PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。

 

方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。

对象的高级特性

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

 

2.对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。

 

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

 

对象引用

  1. 字符串操作

单引号和双引号的区别

PHP允许我们在双引号串中直接包含字串变量

而单引号串中的内容总被认为是普通字符。

字符串的连接

PHP中用英文的点号.来连接两个字符串。

去除字符串首尾的空格

PHP中有三个函数可以去掉字符串的空格

trim去除一个字符串两端空格。
rtrim
是去除一个字符串右部空格,其中的rright的缩写。
ltrim
是去除一个字符串左部空格,其中的lleft的缩写。

获取字符串的长度

php中有一个神奇的函数,可以直接获取字符串的长度,这个函数就是strlen()。

可以使用mb_strlen()函数获取字符串中中文长度。

 

字符串的截取

  1. 英文字符串的截取函数substr()
  2. 中文字符串的截取函数mb_substr()

查找字符串

查找字符串,我们需要用到PHP的查找字符串函数strpos();

函数说明:strpos(要处理的字符串, 要定位的字符串, 定位的起始位置[可选])

替换字符串

替换字符串,我们需要用到PHP的替换函数str_replace()

格式化字符串

函数说明:sprintf(格式, 要转化的字符串)

返回:格式化好的字符串

字符串的合并与分割

  1. php字符串合并函数implode()

2、php字符串分隔函数explode()

字符串的转义

php字符串转义函数addslashes()

函数说明:用于对特殊字符加上转义字符,返回一个字符串

返回值:一个经过转义后的字符串

  1. 正则表达式

PHP中使用PCRE库函数进行正则匹配,比如上例中的preg_match用于执行一个正则匹配,常用来判断一类字符模式是否存在。

正则表达式的基本语法

略。。。。

6. 会话控制

cookie简介

Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据。一般情况下,Cookie通过HTTP headers从服务端返回到客户端。多数web程序都支持Cookie的操作,因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。

PHP通过setcookie函数进行Cookie的设置,任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_COOKIE['key']的形式来读取某个Cookie值。

设置cookie

1.PHP设置Cookie最常用的方法就是使用setcookie函数,setcookie具有7个可选参数,我们常用到的为前5个:

 

1.name( Cookie名)可以通过$_COOKIE['name'] 进行访问

2.value(Cookie的值)

3.expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效

4.path(有效路径)如果路径设置为'/',则整个网站都有效

5.domain(有效域)默认整个域名都有效,如果设置了'www.imooc.com',则只在www子域中有效

2.PHP中还有一个设置Cookie的函数setrawcookie,setrawcookie跟setcookie基本一样,唯一的不同就是value值不会自动的进行urlencode,因此在需要的时候要手动的进行urlencode。

setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);

3. 因为Cookie是通过HTTP标头进行设置的,所以也可以直接使用header方法进行设置。

header("Set-Cookie:cookie_name=value");

cookie的删除与过期时间

  1. setcookie('test', '', time()-1);
  2. header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1));

cookie的有效路径

一般情况下,大多是使用所有路径的,只有在极少数有特殊需求的时候,会设置路径,这种情况下只在指定的路径中才会传递cookie值,可以节省数据的传输,增强安全性以及提高性能。

session与cookie的异同

cookie相对不是太安全,容易被盗用导致cookie欺骗

单个cookie的值最大只能存储4k

每次请求都要进行网络传输,占用带宽

 

session是将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,PHP默认情况下session id是通过cookie来保存的,因此从某种程度上来说,seesion依赖于cookie。但这不是绝对的,session id也可以通过参数来实现,只要能将session id传递到服务端进行识别的机制都可以使用session。

使用session

在PHP中使用session非常简单,先执行session_start方法开启session,然后通过全局变量$_SESSION进行session的读写。

session会自动的对要设置的值进行encode与decode,因此session可以支持任意数据类型,包括数据与对象等

默认情况下,session是以文件形式存储在服务器上的,因此当一个页面开启了session之后,会独占这个session文件,这样会导致当前用户的其他并发访问无法执行而等待。可以采用缓存或者数据库的形式存储来解决这个问题

删除与销毁session

1.删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。

2.删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。

3. 值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。

4. 如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。

使用session来存储用户的登录信息

用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储

posted @ 2015-01-04 23:15  Jimmy-Lee  阅读(188)  评论(0编辑  收藏  举报