PHP入门知识点
PHP基本概念:
1.代码写在<?php ?>中间
2.变量:
2.0 变量名大小写敏感,变量名定义前带美元符:$XXX
2.1 特殊变量
2.1.1 $_SERVER["XXX"]:超全局变量,描述服务器端信息
2.1.2 $_POST["XXX"]: post过来的名为XXX的变量
2.1.3 $_GET["XXX"]:get过来的名为XXX的变量
2.1.4 $_COOKIE["XXX"]:客户端名为XXX的cookie的值
2.1.5 $_FILE["XXX"]:指代客户端上传的文件
2.1.6 $_REQUEST["XXX"]:包含了所有 GET[]、POST[]、COOKIE[] 和 FILE[] 的数据,可以代替前述所有的变量
2.2 变量的修饰
2.2.1 引用符: & ,新变量相当于旧变量的指针。
2.2.2 新变量默认值:FALSE,NULL,0
2.2.3
3.语句
3.1 语句带分号
3.2 echo 打印
3.3 if语句:if(){}
3.4 foreach($var as $key => $var){...}
3.5 三种注释:/* */ // #
3.6 *错误控制运算符(亮点):@,放在表达式之前,用于屏蔽可能出现的错误。
3.7 *数组运算符(亮点):
3.8 *类型运算符(亮点):instanceof,用法:(var instanceof class),返回TRUE 或 FALSE
3.9 switch语句:
switch(){
case 1:
XXXXXXXXXXX;
case 2:
XXXXXXXXXXX;
case 3:
XXXXXXXXXXX;
}
3.10 require()语句:用来包含并运行文件
4. 八种数据类型
4.1四种标量类型:
boolean(布尔型,注意:0,NULL 被转换为FALSE,-1被转换为TRUE)
integer(整型)
float(浮点型,注意:也作“double”)
string(字符串)
4.2两种复合类型:
array(数组 注意:集合定义方式为: $colors = array('red', 'blue', 'green', 'yellow');
键值对方式为: array("key1" => value1,"key2" => value2);
取值方式为:array["key1"],array[10];
移除方式为:unset(array[key]);
排序方式为:sort(array[key]);
二维数组则嵌套上述定义)
object(对象 注意:定义方式为 class Name{};里面可以包含function和变量
实例化方式为 $ins = new Name;
也可以通过类型转换得到:(object))
4.3最后是两种特殊类型:
resource(资源)
NULL
注意:变量类型程序员无法定义,是程序运行时自定义的。
变量赋值可以用ini_set(XXX,XXX);也可以 =
可以使用settype(xxx)修改变量类型,gettype(XXX)得到变量类型
可以使用var_dump()查看表达式的值和类型。
如果定义的一个数长度超出了 integer 的范围,将会被解释为 float。
4.4类型强制转换
4.4.1 用(type)转换
4.4.2 false=0,true=1
4.5
5. 字符串处理
5.1 双引号内的字符串要使用转义字符:
\n 换行
\r 回车
\t table
\\ 反斜线
\$ 美元符
\" 双引号
\111此正则表达式序列匹配一个用八进制符号表示的字符
\x111 此正则表达式序列匹配一个用十六进制符号表示的字符
5.2字符串连接只能用"."和".=",不能用+
5.3
6. 常量
6.0 常量前面不能有美元符$
6.1 常量的定义:define("varname",val);
6.2 常量可以在任何地方访问
7. 函数
7.1 函数内部可以定义函数和类
7.2 函数名大小写不敏感。
7.3 不存在函数的重载和重写,所有函数和类都是全局的
7.4 传址函数:
function XXXXXXXX(&$XXX){
$XXX......;
}
指针只在函数头上写。
7.5 默认参数:直接将参数的默认值等号在函数头
7.6 return 可以返回数组
7.7 函数也可以取址
7.8 变量函数(即回调函数)举例说明:
function foo() {
......
}//定义函数
$var = 'foo';//定义变量
$var();//用变量回调该函数
7.9 变量方法(即回调方法):
class Foo
{
function Variable()
{
......
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();
8. 类与对象(PHP5)
8.1 $this变量指向类的该对象
8.2 类的方法可以用对象调用($Ins->func();),也可以通过类本身调用(Class::func();)
8.3 用extends可以实现继承,除非是父类中的final成员,其他都可以用parent::来访问
8.4 为php文件写一个autoload函数,用于加载任何一个可能未被require()的class.php的文件:
function __autoload($class_name) {
require_once $class_name . '.php';
}
8.5 类的构造函数__construct(){},父类的构造函数parent::__construct(){}
8.6 类的析构函数__destruct(){},父类的析构函数parent::__destruct(){}
8.7 类成员有public,private,protected三类。类成员默认都为public
8.8 static是类成员的描述符,const是类的常量成员的描述符
(1)带有abstract关键字的类是抽象类,带有abstract关键字的方法是抽象方法,抽象类中的抽象方法,必须在子类中被覆写。
(2)带有interface关键字的类,就是接口,接口不允许实现任何的方法,接口中所有的方法,都必须在子类中被覆写。
(3)带有 classA extends classB 或者 classA implements classB 字样的就是继承,extends表示继承另一个类,implements表示继承另一个接口,一次只能extends一个类,但是可以implements多个接口。
(4)抽象类,接口,以及最终继承并实现的方法,都必须是public的
8.9 $a = clone $b; clone关键字实现了真赋值,= 是假赋值
8.10 类的钩子(__autoload(),__construct()等等)就是一些回调函数
8.11
9. PHP的反射机制
9.1 反射:程序运行时,用反射API可以逆向抽取出类的方法、属性、参数、注释等等全部信息。
9.2 反射的基本方法:
step1:定义该类的反射类:
$refclass = new ReflectionClass('classname');
step2:实例化该反射类里面的该类:
$instance = $refclass->newInstanceArgs($args);
step3:
10. PHP的异常处理
原始异常处理:
try {
$error = 'Always throw this error';
throw new Exception($error);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
扩展内置的异常处理类:
class MyException extends Exception
{
......
}