1 常用方法
显示类型:var_dump($var);
获取当前PHP消耗:memory_get_usage
禁止显示PHP警告:error_reporting(0);
PHP标量类型:布尔型(boolean),整型(integer),浮点型,字符串
特殊类型:资源(resource)、空类型(null、NULL)
常量:bool define(string $constant_name, mixed $value[, $case_sensitive = true]) 第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,但是要注意哦,它可不带美元符号哦。第二个参数“value”为必选参数,它是常量的值。第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。
系统常量:
1.FILE : php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。
2.LINE : PHP程序文件行数。它可以告诉我们,当前代码在第几行。
3.PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。
4.PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。
常量获取:
1.使用常量名直接获取值
2.mixed constant(string constant_name); mixed表示返回的值为多种不同的类型,constant_name为要获取常量的名
常量是否被定义: bool defined(string constants_name) 它只有参数constant_name,指的是要获取常量的名称,若存在则返回布尔类型true,否则返回布尔类型false; (注:bool表示函数返回值类型为布尔类型)
字符串连接符:
1.连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
2.连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。
向上舍入为最接近的整数:ceil()
判断不为空:isset()
2 运算符
2.1 赋值运算符
=:把右边的表达式的值赋值给左边的运算数。
&:引用赋值,意味着两个变量东渡指向同一个数据。
2.2 比较运算符
2.3 三元运算符
(“?:”)三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。
2.4 逻辑运算符
2.5 错误控制运算符
错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
3 数组
循环数组:foreach($students as $key=>$val)
创建数组:创建 array()
索引数组:
1.$arrayDemo = array("demo1","demo2","demo3")
2.$arrayDemo2[0] = "demo1"
3.$arrayDemo3 = array('0'=>'demo1')
访问数组:$arrayDemo[0]
4 属性和方法
4.1 类与对象的属性
public:公开的
protected:受保护的
private:私有的
4.2 方法
public:公开的
protected:受保护的
private:私有的
使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::。
4.3 构造函数
_construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作。 在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。
4.4 static关键字
静态方法也可以通过变量来进行动态调用,静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。
例如:
private static $speed = 10;
public static function getSpeed() {
return self::$speed;
}
4.5 属性重载
属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。
4.6 方法的重载
方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。
5 对象
5.1 对象比较
当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断,当需要判断两个变量是否为同一个对象的引用时,可以使用全等运算符===进行判断。
5.2 对象复制
对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。
5.3 对象序列化和反序列化:
对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。
6 正则表达式
preg_match();
//请修改变量p的正则表达式,使他能够匹配str中的电话
$p = '/[\d-]+/';
$str = "我的电话是010-12345678";
preg_match($p, $str, $match);
echo $match[0];
输出010-12345678
$match[x]中的x是匹配正则表达式中的子组的位置,0代表全部,1代表第一个子组,2代表第二个子组,以此类推。
子组:子组通过圆括号()界定。
7 cookie
1.读取cookie: $_COOKIE['key']
2.设置cookie: PHP设置Cookie最常用的方法就是使用setcookie函数,setcookie具有7个可选参数,我们常用到的为前5个:
name( Cookie名)可以通过$_COOKIE['name'] 进行访问
value(Cookie的值)
expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效
path(有效路径)如果路径设置为'/',则整个网站都有效
domain(有效域)默认整个域名都有效,如果设置了'www.imooc.com',则只在www子域中有效。
第六个:secure设置这个 Cookie 是否仅仅通过安全的 HTTPS 连接传给客户端。
第七个:httponly设置成 TRUE,Cookie 仅可通过 HTTP 协议访问。这意思就是 Cookie 无法通过类似 JavaScript 这样的脚本语言访问。 要有效减少 XSS 攻击时的身份窃取行为,可建议用此设置(虽然不是所有浏览器都支持),不过这个说法经常有争议。 PHP 5.2.0 中添加。
3.删除cookie: 将cookie的过期时间设置到当前时间之前,则该cookie会自动失效,也就达到了删除cookie的目的:
setcookie('test', '', time()-1);
header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1));
4.cookie的有效路径
setcookie('test', time(), 0, '/path');
设置会使test在/path以及子路径/path/abc下都有效,但是在根目录下就读取不到test的cookie值。
8 session
1.启动session: session_start();
2.对session进行写入: $_SESSION['test'] = time();
3.对session进行读取: $_SESSION['test']
4.删除session:
删除部分:unset($_SESSION['test']);
删除所有:session_destroy();
值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销$_SESSION,可以使用unset函数。
5.注意: 默认情况下,session是以文件形式存储在服务器上的,因此当一个页面开启了session之后,会独占这个session文件,这样会导致当前用户的其他并发访问无法执行而等待。可以采用缓存或者数据库的形式存储来解决这个问题。
评论