PHP语法记录
格式 | 作用 |
<?php ?> | 存放在后缀名为.php文件中,文件可包含HTML、CSS、JS、普通文本并与php代码任意穿插(php解释器只解释php代码,其余均原样输出),php代码包裹在左侧格式中,当后续没有其他代码时,后缀一般省略。php代码可接收表单、cookies、读取服务器上的数据库、文件等、限制访问页面、加密数据等。 |
注释 | 采用//为单行注释,/* */为多行注释,与C++相同。 |
1、变量类型(前缀为$) | |
布尔型 | 字面量为true、false输入,一般用于流程控制 |
整型 | 字面量可按照十进制、十六进制(前缀0x)、八进制(前缀0)输入 |
浮点型 | 字面量为带小数点的数据,一般用于科学计算 |
字符串 | 字面量为双引号或单引号包裹的数据,双引号内可输出变量 |
空型(NULL) | 一般为可空的字符数据、或数据库中存储的数据,字面量为null |
数组(两种定义类型、元素类型可不相同) | $cars=array("NISSAN","Benz","Jeep"); |
$age=array("Mangus"=>"35","Knight"=>"37","ZhenQi"=>"43"); | |
对象(object) | 实例化的class关键字声明的类对象,采用new关键字实例化 |
资源型(resources) | 一种特殊变量,保存到外部资源的一个引用,常见资源数据类型有打开文件、数据库连接、图形画布区域 |
命名空间 | namespace MyNames{}定义 |
2、运算符(包括类型转换) | |
+ - * / % ~ . =(包括+= -= *= /= %= .=) ++ -- == ===(类型也相同) != <> !== > >= < <= and or xor && || ! 数组运算符(+ == === != <> !==) ?: <=>(太空运算符值为1/0/-1) ->(对象调用) this指针 | |
优先级如下:(从高到低) | |
结合方向 | 运算符 |
无 | clone new |
左 | [ ] |
右 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ |
无 | instanceof |
右 | ! |
左 | * / % |
左 | + – . |
左 | << >> |
无 | == != === !== <> |
左 | & |
左 | ^ |
左 | | |
左 | && |
左 | || |
左 | ? : |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= => |
左 | and |
左 | xor |
左 | or |
左 | , |
3、流程控制语句 | |
if...elseif....else | 采用代码块包裹,与C++语言相同 |
switch(n)...case | break进行分支跳出,与C++语言相同 |
while | 前置判断循环 |
do...while | 后置判断循环 |
for | 指定起、终、步长循环 |
foreach | 遍历数组foreach($age as $value),只获取数组变量值 |
遍历数组foreach($age as $x=>$x_value),可获取数组变量键与值 | |
4、函数定义 | |
函数定义 | function add($var1, $var2 = value) { .....; return $answer; } |
调用方式 | 一般调用$func($variale) |
可将字符变量作为函数名来调用的函数,类似委托$func = 'foo'; $func(); | |
5、魔术常量(预定义常量) | |
__LINE__ | 文件中的当前行号 |
__FILE__ | 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 |
__DIR__ | 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。 |
__FUNCTION__ | 函数名称,区分大小写 |
__CLASS__ | 类的名称,区分大小写 |
__TRAIT__ | Trait的名字,PHP实现了代码复用的一个方法,称为 traits。 |
__METHOD__ | 类的方法名,区分大小写 |
__NAMESPACE__ | 当前命名空间的名称,区分大小写 |
6、面向对象(类的定义与实例化) | |
类定义 | class phpClass { } |
构造函数 | void __construct ([ mixed $args [, $... ]] ) |
析构函数 | void __destruct ( void ) |
继承 | class Child extends Parent { ... } |
方法重写 | 与父类同名即可 |
访问控制(类、方法、字段) | public(公有)、protected(受保护)、private(私有)、字段默认为私有、方法默认公有 |
接口 | 接口是通过 interface 关键字来定义,方法默认公有,类实现接口,使用 implements 操作符 |
常量 | 可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不使用$符号。 |
抽象类 | 任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。 |
Static 关键字 | 声明类属性或方法为 static(静态),就可以不实例化类而直接访问。 |
Final 关键字 | 如果一个类被声明为 final,则不能被继承。 |
调用父类构造方法 | PHP 不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。 |
上一篇: 一个简易的PHP论坛
下一篇: 透析PHP缓存问题