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

{

......

}

相关推荐