首页 > 编程技术 > php

PHP概述.

发布时间:2016-11-25 17:16

1. PHP是什么?
2. PHP 代表什么?
3. 各版本之间有什么关系?
4. 我可以同时运行不同版本的PHP吗?
5. PHP 3 和 PHP 4有什么区别?
6. 我想我发现了一个BUG,我应该告诉谁 ?
1. PHP是什么?
在 手册前言上写到:
PHP是一种嵌入式HTML脚本语言。它的大多数语法来源于C,也有一部分PHP特性借鉴于Java 和 Perl 。这种语言的目的是让WEB开发 人员能够快速高效地写出动态生成的页面。
这儿 (在 Zend站点上)是 Stig S骠her Bakken 写的一个好的PHP的介绍。
 还有, 很多 PHP 资源 都是可以免费得到的.
2. PHP 代表什么?
PHP 代表什么? PHP: 超文本预处理器. 这样的一种代表使很多人感到困惑,因为简写的头一个词就这简写本身。
 这种类型的简写称为递归简写。
 好奇的人可以阅览 在线免费计算机词典查阅更多的信息
3. 各版本之间有什么关系?
PHP/FI 2.0 是早期版本,现在它不再被支持。
 PHP 3 是 PHP/FI 2.0 继承者, 比PHP 2要好一些。
 PHP 4 是最终版本(目前), 它使用了 Zend 引擎 机制。
4. 我可以同时运行不同版本的PHP吗?
是的,可以。详情参阅PHP源代码发行包里的 INSTALL 文件。当然,也要读一下相关的 附件.
5. PHP 3 和 PHP 4 有什么区别?
PHP 4 的书的作者们写了 许多文章 关于这个.下面是其中最重要的新特性:
扩展API模块
UNIX下通用的编译过程
通用WEB服务接口,支持多线程 WEB 服务器
改进的语法
内置HTTP session 支持
输出缓冲支持
更为强大的配置系统
引用计数
如果想看这些特性的细节,请参阅 What's new in PHP 4 overview 如果你正在从PHP 3 转向PHP 4, 那还得读相关 附件。
6. 我想我发现了一个 bug! 我应该告诉谁?
你首先应该去 PHP Bug Database 查一下,确认这不是一个已知的 bug。
 如果在数据库里没有发现它,那么就填写报告表格来报告这个bug。
 记住,一定要使用 bug 而不是简单地通知给一个邮件组,因为在数据库里bug 会分配一个 tracking number 以便于你将来返回来查询bug的进展状态。
 bug database可以在下面的地址找到: http://bugs.php.net/.

PHP 和 HTML
PHP 和 HTML 可以互操作: PHP 能够生成 HTML, 而 HTML 可以传递信息给 PHP. 1. 我用一个 form/URL传值时,我要怎样 编码/解码? 2. 我在用 <input type="image"> 标记, 但 $foo.x and $foo.y 变量却不可用. 它们在哪里? 3. 我怎样创建 HTML <form>数组? 4. 我怎样从一个多选框得到所有的结果值?
1. 我用一个 form/URL传值时,我要怎样 编码/解码?
在几个阶段里,编码是非常重要的. 假设你有一个 字符串变量 $data, 它包含一些你要以 未编码 方式传递的字符, 要经过下面阶段的编码:
HTML 解释. 为了表示任何一个字符串, 你必须 把它包含在双引号里, 而且是HTML特殊字符的要使用 htmlspecialchars写法.
URL: URL 由几部分组成. 你想你的数据被看成URL的一部分, 你 必须 用 urlencode()编码它.
例 52-1. 隐藏的 HTML 表单元素<?php    echo "<input type=hidden value="" . htmlspecialchars($data) . ""> ";?>
/*
+-------------------------------------------------------------------------------+
| = 本文为Haohappy读<<Core PHP Programming>>
| = 中Classes and Objects一章的笔记
| = 翻译为主+个人心得
| = 为避免可能发生的不必要的麻烦请勿转载,谢谢
| = 欢迎批评指正,希望和所有PHP爱好者共同进步!
+-------------------------------------------------------------------------------+
*/
第六节--访问属性和方法
一个对象实例的属性是变量,就像PHP的其他变量一样. 但是你必须使用->运算符来引用它们. 不需要在属性前使用美元符$. 例如, 6.1中打印User对象的name属性那一行.
可以联用->,如果一个对象的属性包含了一个对象,你可以使用两个->运算符来得到内部对象的属性. 你甚至可以用双重引用的字符串来放置这些表达式. 看6.5中的例子,对象House中的属性room包含了一组Room对象.
访问方法和访问属性类似. ->运算符用来指向实例的方法. 在例子6.1中调用getLastLogin就是. 方法执行起来和类外的函数几乎相同.
如果一个类从另一类中继承而来,父类中的属性和方法将在子类中都有效,即使在子类中没有声明. 像以前提到过的,继承是非常强大的. 如果你想访问一个继承的属性,你只需要像访问基类自己的属性那样引用即可,使用::运算符.
<?php
class Room
{
public $name;
function __construct($name="unnamed")
{
$this->name = $name;
}
}
class House
{
//array of rooms
public $room;
}
//create empty house
$home = new house;
//add some rooms
$home->room[] = new Room("bedroom");
$home->room[] = new Room("kitchen");
$home->room[] = new Room("bathroom");
//show the first room of the house
print($home->room[0]->name);
?>
PHP有两个特殊的命名空间:parent命名空间指向父类,self命名空间指向当前的类. 例子6.6中显示了如何用parent命名空间来调用父类中的构造函数. 同时也用self来在构造函数中调用另一个类方法.
<?php
class Animal //动物
{
public $blood; //热血or冷血属性
public $name;
今天做网站的可离不得数据库,说不定你维护的网站就连接着MySQL数据库。MySQL是一种关系型数据库管理系统(RDMS),我们知道,有了数据库,你的网站才会由死气沉沉的静态站点一跃而变得“神采奕奕”、活力四射,个人数据的管理、一般性的日常数据库应用等等都靠网站后端的数据库支撑着呢,这就是MySQL大显神威的地方了!我们这篇文章要谈论的就是MySQL数据库,希望读者能从概述性的本文中学到更多关于MySQL数据库的知识,由此进入MySQL世界的大门。
巨便宜的全能数据库
MySQL在开放源代码世界和Web团体社区中都是如雷贯耳的流行数据库系统,而且,实质上已经成为了免费数据库软件事实上的标准。原因何在呢?其实,MySQL数据库确实是一种真正面向大众的“下里巴”式、通俗的解决方案,它吸引了为数众多的、各种各样的数据库用户和数据库管理员,我们随后就会讨论到这些。
Mysql获得巨大成功还有另外一个原因:要获得它特别方便。在开放源代码世界里,GPL是共享开放源代码软件的一种标准许可协议;它规定自由软件(我们现在说的就是MySQL)可以无须付费即可使用,只要包含GPL产品的任何源代码也在遵守GPL的条件范围内被使用即可。这么说吧:你一个子儿不用就能免费下载MySQL。
而且,这并不是说,如果你的数据库用的是MySQL你就必须公开发布你的软件源代码。其实,只有在以下两种情况下你才必须执行GPL:其一是,从功能上说,MySQL代码是你的软件所必要的组成部分,其二是你随同自己的软件分派这种RDMS。而在商务或者个人自用的情况下就没有任何限制了,不过,使用MySQL的许多公司通常会采取专有许可协议防止软件源代码的泄露。专有许可协议可以按每一数据库服务器为单位购买,一个单位的起步价大约是200美元(如果按卷分发许可协议的话这个价格也可能会更低一些)。
--------------------------------------------------------------------------------
遵照GPL采用MySQL的网站示范
Slashdot—技术人员新闻站点
PHP-Nuke—网站管理系统
Freshmeat.net—软件目录
Linux.com—Linux新闻、技巧和下载的门户站点
--------------------------------------------------------------------------------
然而,MySQL也有个最令人头痛的问题:它没有完全地遵守ANSI SQL标准。如果你特别在意这个问题而且为此忧心忡忡,那我建议你不妨读一读Michael M. Gorman撰写的有关文章。这篇论文阐述了ANSI SQL标准的有效性,因为——说老实话,没有一个数据库系统老老实实遵守了SQL99规范。
MySQL 中的 SQL
  对于 MySQL ,第一件你必须牢记的是它的每一行命令都是用分号 (;) 作为结束的,但……没有完全绝对的事,在这儿也是一样。
   前面我曾经讲到,当一行 MySQL 被插入在 PHP 代码中时,最好把后面的分号省略掉,例如:
mysql_query ("INSERT INTO tablename (first_name, last_name)
VALUES ('$first_name', '$last_name')
");
   这是因为 PHP 也是以分号作为一行的结束的,额外的分号有时会让 PHP 的语法分析器搞不明白,所以还是省略掉的好。在这种情况下,虽然省略了分号,但是 PHP 在执行 MySQL 命令时会自动的帮你加上的。
   另外还有一个不要加分号的情况。当你想把要字段的竖者排列显示下来,而不是像通常的那样横着排列时,你可以用 G 来结束一行 SQL 语句,这时就用不上分号了,例如:
SELECT * FROM PENPALS
WHERE USER_ID = 1G
TEXT、DATE、和 SET 数据类型
作 者 : 扬眉 编译 本文点击次数:114
   MySQL 数据表的字段必须有定义一个数据类型。这有大约 25 种选择,大部分都是直接明了的,就不多费口舌了。但有几个有必要提一下。
TEXT 不是一种数据类型,虽然可能有些书上是这么说的。它实际上应该是“ LONG VARCHAR ”或者“ MEDIUMTEXT ”。
DATE 数据类型的格式是 YYYY-MM-DD ,比如: 1999-12-08 。你可以很容易的用 date 函数来得到这种格式的当前系统时间:
date("Y-m-d")
  并且,在 DATA 数据类型之间可以作减法,得到相差的时间天数:
$age = ($current_date - $birthdate);
  集合 SET 是一个有用的数据类型,它和枚举 ENUM 有点相似,只不过是 SET 能够保存多个值而 ENUM 只能保存一个值而已。而且, SET 类型最多只能够有 64 个预定的值,而 ENUM 类型却能够处理最多 65,535 个预定义的值。而如果需要有大于 64 个值的集合,该怎么办呢?这时就需要定义多个集合来一起解决这个问题了。
通配符
   SQL 的同配符有两种:“ * ”和“ % ”。分别用在不同的情况下。例如:如果你想看到数据库的所有内容,可以像这样来查询:
SELECT * FROM dbname
WHERE USER_ID LIKE '%';
  这儿,两个通配符都被用上了。他们表示相同的意思 ?? 都是用来匹配任何的字符串,但是他们用在不同的上下文中。“ * ”用来匹配字段名,而“ % ”用来匹配字段值。另外一个不容易引起注意的地方是“ % ”通配符需要和 LIKE 关键字一起使用。
标签:[!--infotagslink--]

您可能感兴趣的文章: