php学习文档

  • 格式:docx
  • 大小:30.08 KB
  • 文档页数:7

基本概念

PHP的特性:

1开放的源代码

所有的PHP源代码事实上都可以得到。

2、PHP是免费的。

和其它技术相比,PHP本身免费。

3、php的快捷性

程序开发快,运行快,技术本身学习快。嵌入HTML:因为PHP可以嵌入HTML语言,它 相对于其他语言,编辑简单,实用性强,更适合初学者。

4、跨平台性强:

由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。

5、效率高:

PHP消耗相当少的系统资源。

6、图像处理:

用PHP动态创建图像

7、面向对像:

在php4,php5 中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。

8、专业专注;

1、新的对象模式 (New Object Mode)

* 构造函数和析构函数

* 对象的引用

* 对象的克隆

* 对象中的私有、公共及受保护模式

* 接口 (Interfaces)

* 抽象类

* __call

* __set 和 __get

* 静态成员

构造函数和析构函数

在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。

对象的引用

在PHP4中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号“&” 来声明是要做一个引用,而不是一个 Copy。在 PHP5中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。

对象的克隆

当一个对象始终以引用的形式来被调用时,如果我想得到该对象的一个副本,该怎么办呢?PHP5 提供了一个新的功能,就是对象的克隆,语法为 __clone。

对象中的私有、公共及保护模式 PHP4 中,一个对象的所有方法和变量都是公共的,这意味着你可以在一个对象的外部操作其中的任意一个变量和方法。PHP5 引入了三种新的用来控制这种存取权限的模式,它们是:公共的(Public)、受保护的(Protected)及私有的(Private)。

公共模式(Public):允许在对象外部进行操作控制。

私有模式(Private):只允许本对象内的方法对其进行操作控制。

受保护模式(Protected):允许本对象及其父对象对其进行操作控制。

接口 (Interfaces)

PHP4中的对象支持继承,要使一个对象成为另一个对象的派生类,你需要使用类似 “class foo extends parent” 的代码来控制。PHP4 和 PHP5 中,一个对象都仅能继承一次,多重继承是不被支持的。不过,在 PHP5中产生了一个新的名词:接口,接口是一个没有具体处理代码的特殊对象,它仅仅定义了一些方法的名称及参数,此后的对象就可以方便的使用'implement' 关键字把需要的接口整合起来,然后再加入具体的执行代码。

这对提高代码的可读性及通俗性有很大的帮助,通过上面的例子可以看到,对象

foo 包含了displayable 和 printable 两个接口,这时我们就可以清楚的知道,对象 foo

一定会有一个 display() 方法和一个print() 方法,只需要去了解接口部分,你就可以轻易的操作该对象而不必去关心对象的内部是如何运作的。

抽象类

抽象类不能被实例化。

抽象类与其它类一样,允许定义变量及方法。

抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。

__call

PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。

__set 和 __get

这是一个很棒的方法,__set 和 __get 方法可以用来捕获一个对象中不存在的变量和方法。

类型指示

在 PHP5 中,你可以在对象的方法中指明其参数必须为另一个对象的实例。

静态成员

静态成员和静态方法在面象对象编程的术语中被称作 “类方法(class methods)” 和

“类变量(class variables)”。

“类方法” 在一个对象没有实例化前允许被调用。同样,“类变量” 在一个对象没有实例化前可以被独立操作控制(不需要用一个对象的方法来控制)。

2、异常处理 (Exceptions)

异常处理是公认的处理程序错误的理想方法,在 Java 及 C 中都有这个概念,我们欣喜的看到,在 PHP5 已经加入了这方面的应用。你可以尝试使用 “try” 和 “catch”

来控制程序的错误。当有错误发生的时候,代码会把错误交给 “catch” 子句来处理,在 “catch” 子句中,你需要指明要把错误交给某个对象处理,这样做可以使代码结构看起来更清晰,因为现在我们可以把所有的错误信息交给一个对象来处理。

自定义错误处理

你可以很方便的用自定义的处理错误的代码来控制你的程序中的意外。你仅仅需要从异常类中派生出一个自己的错误控制类,在你自己的错误控制类中,你需要有一个构造函数和一个 getMessage 方法。

语法部分

用来标记php代码块的标记常用

1. 注释 /*…..*/ 单行注释 //……

2. Php的八种类型

常用类型:Boolean integer float string array object

特殊类型: resource null

获取变量的类型值 gettype() 返回类型

设置类型settype(mixed var,string type)

3.变量

变量名大小写敏感

$value //$value=0

引用:

$hello=”hello”;

$value=&$hello

作用域:

局部变量 函数参数function xxx($value){} 全局变量 声明GLOBAL $value

静态变量 STATIC $value;

4超级全局变量

$_SERVER[‘REMOTE_ARR’] 显示用户的IP

$_SERVER[‘HTTP_USER_AGENT’] 浏览器和操作系统的信息

$_RNB[‘HOSTNAME’] 服务器主机名

$_COOKIE[“”]

$_SESSION[“”]

$_GET[‘’] $_POST[‘’] 看

5常量

Define(“PI”,3.1415);

操作符 new,(),!,++,--,/,%,>>,<<,|,||,&,&&, ?:等等

字符串操作符 . .=

6向浏览器输出数据的函数:

Print();或者print” ”;

Echo();

Printf(“ ”); 和C语言一样

$cost=Sprintf(“”); 功能和printf()相同,返回值赋给$cost

7类型标识符函数:is_array() is_integer()等等 返回值为bool型

8二维数组

Range创建数组 $arr=range(0,9,间隔参数);

$a=array(array(1,2,3), Array(4,5,6),

Array(7,8,9)

);

$a[0][0]=1, $a[0][1]=2 数组索引从0开始

关联数组

$arr=array(“foo”=>”bar”,12=>true);

Echo $arr[“foo”]; //bar

Echo $arr[12]; //1

?>

关联的二维数组

$arr=array(“somearray”=>array(6=>5,13=>9,”a”=>42))

Echo $arr[“somearray”][6]; //5

Echo $arr[“somearray”][13]; //9

Echo $arr[“somearray”][“a”]; //42

?>

$arr[key]=value 注意:key不是string就是非负integer。Value可以是任何值

数组的排序

判断时候在数组里:in_array($value,$数组) 返回bool

文件引入:require(firename) include() require_once()

例子:foreach处理数组

$link=arrar(,””,””);

Foreach($link as $links)

{

Echo “**** ”;

}

Break,continue,goto语句

一维数组排序函数有sort()按字母升序排列

二维数组排序函数有asort()根据值升序排列 ,ksort()根据KEY值升序排列

重要的一个函数: shuffle()打乱数组元素位置。

在数组头尾添加或者删除元素:

array_unshift($数组, $value) array_push($数组,$value) array_shift($数组)

array_pop($数组)

获取数组键和值: array_keys() array_values()

数组大小:sizeof() count()

随机洗牌数组:shuffle()

9强制转换

任何数据类型都能转化为object对象

(转化的类型)$变量

类型自动转换:

$total=”45 fire engines”;

$incoming=45;