【PHP】基础语法
本文最后更新于 1430 天前,其中的信息可能已经有所发展或是发生改变。

常用方法

显示类型: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()

运算符

赋值运算符:

1.=:把右边的表达式的值赋值给左边的运算数。
2.&:引用赋值,意味着两个变量东渡指向同一个数据。

比较运算符:

三元运算符:

(“?:”)三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。

逻辑运算符:

错误控制运算符:

错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。

数组

循环数组:foreach($students as $key=>$val)
创建数组:创建 array()
索引数组:
1.$arrayDemo = array(“demo1″,”demo2″,”demo3”);
2.$arrayDemo2[0] = “demo1”;
3.$arrayDemo3 = array(‘0’=>’demo1’);
访问数组:$arrayDemo[0];

属性和方法

类与对象的属性:

public:公开的
protected:受保护的
private:私有的

方法:

public:公开的
protected:受保护的
private:私有的
使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::。

构造函数:

_construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作。
在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。

static关键字:

静态方法也可以通过变量来进行动态调用,静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。
例如:
private static $speed = 10;
public static function getSpeed() {
return self::$speed;
}

属性重载:

属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。

方法的重载:

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

对象

对象比较:

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

对象复制:

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

对象序列化和反序列化:

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

正则表达式

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代表第二个子组,以此类推。子组:子组通过圆括号()界定。

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值。

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函数。
4.注意:
默认情况下,session是以文件形式存储在服务器上的,因此当一个页面开启了session之后,会独占这个session文件,这样会导致当前用户的其他并发访问无法执行而等待。可以采用缓存或者数据库的形式存储来解决这个问题,这个我们会在一些高级的课程中讲到。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇