PHP 在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:
· Adabas D
· DBA
· dBase
· dbm
· filePro
· Informix
· InterBase
· mSQL
· Microsoft SQL Server
· MySQL
· Solid
· Sybase
· ODBC
· Oracle 8
· Oracle
· PostgreSQL
而在 Internet 上它也支持了相当多的通讯协议 (protocol),包括了与电子邮件相关的 IMAP, POP3;网管系统 SNMP;网络新闻 NNTP;帐号共用 NIS;全球信息网 HTTP 及 Apache 服务器;目录协议 LDAP 以及其它网络的相关函数。
除此之外,用 PHP 写出来的 Web 后端 CGI 程序,可以很轻易的移植到不同的操作系统上。例如,先以 Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到 SUN 工作站上,不用重新编译 CGI 程序。面对快速发展的 Internet,这是长期规划的最好选择。
变数类型:
PHP有好多种变数; 主要有这些:
- 数字 (integer - 例: 32)
- 布尔值 (boolean - 例: TRUE)
- 字串 (string - 例: 'a string of text')
- NULL
- 资源(resource)
- 数组 (array - 例: arrayname[2])
-对象(object)
语法:
语法有三种:
//comment
/* comment */
# comment
基本的 "Control Structures":
* if ... else
if (condition == true) ;
* if ... else then
if (condition == true)
else if (condition2 == true) ;
一个PHP实例:
<html>
<head>
<title>First program</title>
</head>
<body>
<?php
echo "hello world";
?>
</body>
</html>
请看:
php官方网站:www.php.net
php对面向对象的支持
面向对象编程的概念:
不同的作者之间说法可能不一样,但是一个OOP语言必须有以下几方面:
抽象数据类型和信息封装
继承
多态
在PHP中是通过类来完成封装的:
<?php
class Something {
// 在OOP类中,通常第一个字符为大写
var $x;
function setX($v) {
// 方法开始为小写单词,然后使用大写字母来分隔单词,例如getValueOfArea()
$this->x=$v;
}
function getX() {
return $this->x;
}
}
当然你可以按自己的喜好进行定义,但最好保持一种标准,这样会更有效。数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的。一个数据成员可以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象。方法在类中被定义成函数形式,在方法中访问类成员变量时,你应该使用$this->name,否则对一个方法来说,它只能是局部变量。
使用new操作符来创建一个对象:
$obj=new Something;
然后你可以使用成员函数通过:
$obj->setX(5);
$see=$obj->getX();
在这个例子中,setX成员函数将5赋值给对象的成员变量x(不是类的),然后getX返回它的值5。可以象:$obj->x=6那样通过类引用方式来存取数据成员,这不是一个很好的OOP习惯。我强烈建议通过方法来存取成员变量。如果你把成员变量看成是不可处理的,并且只通过对象句柄来使用方法,你将是一个好的OOP程序员。不幸的是,PHP不支持声明私有成员变量,所以不良代码在PHP中也是允许的。继承在PHP中很容易实现,只要使用extend关键字。
<?php
class Another extends Something {
var $y;
function setY($v) {
$this->y=$v;
}
function getY() {
return $this->y;
}
}
"Another"类的对象现在拥有了父类(Something)的全部的数据成员及方法,而且还加上了自己的数据成员和方法。
你可以使用
$obj2=new Something;
$obj2->setX(6);
$obj2->setY(7);
PHP现在还不支持多重继承,所以你不能从两个或两个以上类派生出新的类来。你可以在派生类中重定义一个方法,如果我们在"Another"类中重定义了getX方法,我们就不能使 用"Something"中的getX方法了。如果你在派生类中声明了一个与基派同名的数据成员,那么当你处理它时, 它将“隐藏”基类的数据成员。
你可以在你的类中定义构造函数。构造函数是一个与类名同名的方法,当你创建一个类的对象时会被调用,例如:
<?php
class Something {
var $x;
function Something($y) {
$this->x=$y;
}
function setX($v) {
$this->x=$v;
}
function getX() {
return $this->x;
}
}
所以你可以创建一个对象,通过:
$obj=new Something(6);
构造函数会自动地把6赋值给数据变量x。构造函数和方法都是普通的PHP函数,所以你可以使用缺省参数。
function Something($x="3",$y="5")
接着:
$obj=new Something(); // x=3 and y=5
$obj=new Something(8); // x=8 and y=5
$obj=new Something(8,9); // x=8 and y=9
缺省参数使用C++的方式,所以你不能忽略Y的值,而给X一个缺省参数,参数是从左到右赋值的,如果传入的参数少于要求的参数时,其作的将使用缺省参数。
当一个派生类的对象被创建时,只有它的构造函数被调用,父类的构造函数没被调用,如果你想调用基类的构造函数,你必须要在派生类的构造函数中显示调用。可以这样做是因为在派生类中所有父类的方法都是可用的。
<?php
function Another() {
$this->y=5;
$this->Something();
//显示调用基类构造函数
}
OOP的一个很好的机制是使用抽象类。抽象类是不能实例化,只能提供给派生类一个接口。设计者通常使用抽象类来强迫程序员从基类派生,这样可以确保新的类包含一些期待的功能。在PHP中没有标准的方法,但是:如果你需要这个特性,可以通过定义基类,并在它的构造函数后加上"die" 的调用,这样就可以保证基类是不可实例化的,现在在每一个方法(接口)后面加上"die" 语句,所以,如果一个程序员在派生类中没有覆盖方法,将引发一个错误。而且因为PHP 是无类型的,你可能需要确认一个对象是来自于你的基类的派生类,那么在基类中增加一个方法来实义类的身份(返回某种标识id),并且在你接收到一个对象参数时校验这个值。当然,如果一个邪恶不好的程序员在派生类中覆盖了这个方法,这种方法就不起作用了,不过一般问题多发现在懒惰的程序员身上,而不是邪恶的程序员。
当然,能够让基类对程序员无法看到是很好的,只要将接口打印出来做他们的工作就可以了。在PHP中没有析构函数。
重载(与覆盖不同)在PHP中不支持。在OOP中,你可以重载一个方法来实现两个或重多的方法具有相同的名字,但是有不同数量或类型的参数(这要看语言)。PHP 是一种松散类型的语言,所以通过类型重载不起作用,然而通过参数的个数不同来重载也不起作用。
有时在OOP中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在PHP中实现它的技巧是:
<?php
class Myclass {
function Myclass() {
$name="Myclass".func_num_args();
$this->$name();
//注意$this->name()一般是错误的,但是在这里$name是一个将被调用方法的名字
}
function Myclass1($x) {
code;
}
function Myclass2($x,$y) {
code;
}
} 通过在类中的额外的处理,使用这个类对用户是透明的:
$obj1=new Myclass('1'); //将调用Myclass1
$obj2=new Myclass('1','2'); //将调用Myclass2
有时这个非常好用。
分享到:
相关推荐
在PHP中,数据库操作是至关重要的,尤其是在开发动态网站时。本文将深入探讨如何使用PHP与MySQL数据库进行交互,包括连接、查询、操作以及关闭数据库连接。我们将主要关注两种方法:传统的MySQL函数和更现代的MySQLi...
很不错哦,一定要下载哦,是.php格式,需要的话赶快下载吧,走过不要错过,过了就可惜了
《医院病房管理系统--数据库课设》是一个典型的IT项目,它主要涵盖了数据库设计、系统开发以及医院业务流程管理等多个方面的知识。在这个课设中,学生通常需要构建一个能够模拟实际医院病房管理功能的系统,以便对...
总的来说,“网上书店-数据库”项目涉及到Web开发的基础知识,包括服务器端脚本、数据库操作、网页设计等多个方面,是学习和实践Web应用开发的良好实例。通过这个项目,开发者可以深入了解ASP编程、数据库设计以及...
接着,详细介绍了使用PHP语言操作MySQL数据库的基本步骤,这包括如何建立连接、选择数据库、执行数据库操作以及关闭连接。最后,文档指出了在MySQL数据库中,只有使用InnoDB存储引擎的数据库或表才支持事务处理,这...
接下来我们将围绕这三个方面展开详细的知识点解析。 ### 一、开发语言 #### Java Java 是一种面向对象的编程语言,广泛应用于企业级应用开发、移动应用(尤其是 Android 应用)开发等领域。它以其跨平台性(Write ...
预处理语句的使用是PHP数据库操作中的一个重要安全实践。通过使用`prepare()`和`execute()`方法,我们可以将用户输入与SQL命令分开,从而避免恶意代码执行。例如: ```php $stmt = $pdo->prepare("INSERT INTO ...
通过《数据库原理及应用技术》课程指导平台的开发,学生不仅可以深化对数据库技术的理解,还能全面锻炼软件工程的实践能力,包括需求分析、系统设计、编码实现、测试与调试,以及项目管理等多个方面。同时,这样的...
MySQL/PHP数据库应用开发指南 PART1 本书以应用程序的开发为核心,以具体实例展示了如何将PHP和MySQL紧密结合,实现数据驱动Web站点。全书共分为5个部分,首先讲解了使用MySQL所需了解的数据库方面的知识,接着探讨...
通过研究这个源码包,开发者可以了解一个基本的在线充值系统是如何运作的,同时也可以提高自己在PHP和数据库对接方面的技能。在实际应用中,还需要考虑更多方面,如用户体验、性能优化、安全性强化等。
资源管理数据库系统是用于存储、组织和检索...总的来说,构建一个资源管理数据库系统php代码涉及到PHP编程、SQL查询、MySQL数据库管理和安全实践等多个方面,需要综合运用这些知识以创建一个稳定、高效且安全的系统。
系统采用PHP语言开发,使用MySQL数据库存储数据。系统的主要功能包括: - 用户管理:支持用户注册、登录、注销等功能,通过用户身份验证来保证系统的安全性; - 域名管理:支持域名的添加、删除、修改、查询等功能...
综上所述,“php-mysql.rar”提供的资源是一个实际应用的案例,涵盖了PHP编程、MySQL数据库操作、Web应用开发等多个方面。通过学习和研究这个论坛系统,开发者可以深入了解如何将PHP和MySQL结合,构建高效、安全的...
DBKiss是一个基于PHP开发的数据库浏览工具,...通过学习和研究DBKiss这个PHP实例,开发者可以深入理解PHP在实际项目中的应用,掌握数据库管理工具的开发技巧,同时也能提高在Web开发中的安全性、性能优化等方面的能力。
PHP,全称Hypertext Preprocessor,是一种广泛应用于网页服务器端的脚本语言,尤其在构建动态网站方面表现突出。在这个名为"travelPhp"的项目中,我们拥有一个完整的PHP后台管理系统,包含了数据库设计与源码实现,...
全书共分为5个部分,首先讲解了使用MySQL所需了解的数据库方面的知识,接着探讨了PHP的基本脚本语言、PHP函数以及编写可管理的简捷代码的技巧,然后给出了两个简单的应用程序,来宾簿和调查表,在实践中应用所学的...
【标题】"PHP实例开发源码—php威盘音乐外链-SQL数据库版.zip" 提供的是一个基于PHP语言的威盘(Web Disk)音乐外链项目,该项目使用了SQL数据库来存储和管理数据。威盘是一种在线存储服务,允许用户上传、存储并...
在IT行业中,PHP是一种广泛使用的服务器端脚本语言,尤其在构建动态网页和Web应用程序方面。本项目将探讨如何利用PHP连接数据库,实现一个简单的投票系统。首先,我们需要创建一个数据库来存储投票信息,这里使用的...
接下来,使用PHP的PDO或mysqli扩展与MySQL交互,将图片二进制数据插入到数据库中: ```php // 假设已连接到数据库 $stmt = $pdo->prepare("INSERT INTO images (imageData, fileName) VALUES (?, ?)"); $stmt->...