主页
软件技术
返回
PHP开发语文介绍

一、 PHP概述

PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。和客户端的 JavaScript 不同的是,PHP 代码是运行在服务端的。

使用 PHP 的一大好处是它对于初学者来说极其简单,同时也给专业的程序员提供了各种高级的特性。PHP 主要是用于服务端的脚本程序,因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。

PHP 脚本主要用于以下三个领域:

服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。需要在运行 web 服务器时,安装并配置 PHP,然后,可以用 web 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。如果只是实验 PHP 编程,所有的这些都可以运行在自己家里的电脑中。请查阅安装一章以获取更多信息。

命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅 PHP 的命令行模式以获取更多信息。

编写桌面应用程序。对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通 PHP,并且希望在客户端应用程序中使用 PHP 的一些高级特性,可以利用 PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。如果对 PHP-GTK 感兴趣,请访问其? 网站以获取更多信息。

PHP 能够用在所有的主流操作系统上,已经支持了大多数的 web 服务器,使用 PHP,可以自由地选择操作系统和 web 服务器。同时,还可以在开发时选择使用面对过程和面对对象,或者两者混和的方式来开发。尽管 PHP 4 不支持 OOP 所有的标准,但很多代码仓库和大型的应用程序(包括 PEAR 库)仅使用 OOP 代码来开发。PHP 5 弥补了 PHP 4 的这一弱点,引入了完全的对象模型。

使用 PHP,并不局限于输出 HTML。PHP 还能被用来动态输出图像、PDF 文件甚至 Flash 动画(使用 libswf 和 Ming)。还能够非常简便的输出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能够自动生成这些文件,在服务端开辟出一块动态内容的缓存,可以直接把它们打印出来,或者将它们存储到文件系统中。

PHP 最强大最显著的特性之一,是它支持很大范围的数据库。同时还有一个叫做 PDO 的数据库抽象扩展库使得可以自由地使用该扩展库支持的任何数据库。另外,PHP 还支持 ODBC,即 Open Database Connection Standard(开放数据库连接标准),因此可以连接任何其它支持该世界标准的数据库。

PHP 还支持利用诸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 环境)等不计其数的协议的服务。还可以开放原始网络端口,使得任何其它的协议能够协同工作。PHP 支持和所有 web 开发语言之间的 WDDX 复杂数据交换。关于相互连接,PHP 已经支持了对 Java 对象的即时连接,并且可以将他们自由的用作 PHP 对象。甚至可以用我们的 CORBA 扩展库来访问远程对象。

PHP 具有极其有效的文本处理特性,支持从 POSIX 扩展或者 Perl 正则表达式到 XML 文档解析。为了解析和访问 XML 文档,PHP 4 支持 SAX 和 DOM 标准,也可以使用 XSLT 扩展库来转换 XML 文档。PHP 5 基于强健的 libxm2 标准化了所有的 XML 扩展,并添加了 SimpleXML 和 XMLReader 支持,扩展了其在 XML 方面的功能。

另外,还有很多其它有趣的扩展库。例如 mnoGoSearch 搜索引擎函数、IRC 网关函数、多种压缩工具(gzip、bz2、zip)、日历转换、翻译……

如果需要自己配置服务器和 PHP,有两个方法将 PHP 连接到服务器上。对于很多服务器,PHP 均有一个直接的模块接口(也叫做 SAPI)。这些服务器包括 Apache、Microsoft Internet Information Server、Netscape 和 iPlanet 等服务器。其它很多服务器支持 ISAPI,即微软的模块接口(OmniHTTPd 就是个例子)。如果 PHP 不能作为模块支持 web 服务器,总是可以将其作为 CGI 或 FastCGI 处理器来使用。这意味着可以使用 PHP 的 CGI 可执行程序来处理所有服务器上的 PHP 文件请求。

对于PHP的安装和配置需要说明的是,不同版本的PHP和服务器、数据库组件之间的装配方法并不统一,需要根据不同版本安装,有关各模块最新版本之间的搭配组合安装参见 一般PHP在不同环境下的安装配置

配置文件(PHP 3 中是 php3.ini,自 PHP 4 起是 php.ini)在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本,每次调用都会读取。 更多关于PHP配置文件的说明请参阅手册或网络

二、 PHP基础

2.1基本语法

开始和结束标记:共有4种不同的界定形式,其中两种,<?php ?> 和 <script language="php"> </script> 总是可用的,另两种是短标记<? ?>和 ASP风格标记<% %>,可以在 php.ini 配置文件中打开或关闭。为了代码的移植及发行,确保不要使用短标记。和asp标记。

指令分隔符:PHP 需要在每个语句后用分号;结束指令,在一个 PHP 代码段中的最后一行可以不用分号结束。

注释:    单行#或//    多行/*  */

数据类型:PHP 支持8种基本的数据类型。

四种标量类型: boolean (布尔型) integer (整型) float (符点型, 也称作 double) string (字符串)

两种复合类型: array (组) object (对象)

两种特殊类型: resource (资源) NULL (NULL)

为了确保代码的易读性,手册还介绍了一些伪类型,

mixed:说明一个参数可以接受多种不同的(但并不必须是所有的)类型。

Number:说明一个参数可以是 integer 或者 float。

Callback:有些诸如 call_user_function() 或 usort() 的函数接受用户自定义的函数作为一个参数。Callback 函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。

PHP 在变量定义中不需要(或不支持)明确的类型定义;变量类型是根据使用该变量的上下文所决定的。关于类型之间的转换规则及注意事项参阅PHP手册,对于数组类型下面会详细讲到。

变量:PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:'[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'。变量默认总是传值赋值。

虽然在 PHP 中并不需要初始化变量,但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默认值。依赖未初始化变量的默认值在某些情况下会有问题,例如把一个文件包含到另一个之中时碰上相同的变量名。

使用未初始化的变量会发出E_NOTICE错误,但是在向一个未初始化的数组附加单元时不会。isset() 语言结构可以用来检测一个变量是否已被初始化。

PHP 将会自动将变量名中的点替换成下划线。PHP 包括几个函数可以判断变量的类型,例如:gettype(),is_array(),is_float(),is_int(),is_object() 和 is_string()。

关于PHP系统的预定义变量等更多变量内容参见PHP手册

常量:

定义常量define()函数通过给一个变量名赋值来定义一个常量,其形式如下: boolean define(string name, mixed value[,bool case_ insensitive]),如果使用可选参数case insensitive,并且这个参数值为下RUE,那么后面对此常量的引用将不区分大小写。常量的范围是全局的。

魔术常量:有七个魔术常量它们的值随着它们在代码中的位置改变而改变。这些特殊的常量不区分大小写

__LINE__

文件中的当前行号。

__FILE__

文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自   PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。

__DIR__

文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于   dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =

__FUNCTION__

函数名称(PHP 4.3.0 新加)。自   PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

__CLASS__

类的名称(PHP 4.3.0 新加)。自   PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

__METHOD__

类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。  

__NAMESPACE__

当前命名空间的名称(大小写敏感)。这个常量是在编译时定义的(PHP   5.3.0 新增)


2015年二级建造师考试《施工管理》真题及答案解析
安全工程师考试:从业人员的权利和义务
谢天:90后装修根本不需要设计师
浅析工程项目管理的主要控制要素
Ali Grehan:好的设计足以令人心生快乐
胡建新:绿色建筑的人居理念比技术更重要
建筑工程:在项目招标中如何防止串标
刘卫民:棚改需要政府让利
信息发布:名易软件http://www.myidp.net