1.orderform.html

<form action='processorder.php' method="post">

  该表单的动作被设置为能够处理客户订单的PHP脚本名称。一般来说,action属性值就是用户点击“submit(提交)”按钮时将要载入的URL。用户在表单中输入的数据将按照method 属性中指定的方法发送到这个URL,该方法可以是get(附加在URL的结尾)或post(以单独消息的形式发送)。

2.processorder.php

<html>

<head>

<title>Bob's Auto Parts - Order Results</title>

</head>

<body>

<h1>Bob's Auto Parts</h1>

</body>

</html>

到此为止,输入内容为纯HTML。现在开始在这些脚本中添加一些简单的PHP代码。

在HTML中嵌入PHP,在以上代码的<h2>标记处,添加如下代码:

<?php

  echo '<p>Order processed.</p>'

?>

保存并在浏览器中载入该文件,填写该表单,点击“submit Order”,浏览器输出两行"Order processed."

通过浏览器,查看该HTML的源代码:

<html>

<head>

<title>Bob's Auto Parts - Order Results</title>

</head>

<body>

<h1>Bob's Auto Parts</h1>

<p>Order processed.</p>

</body>

</html>

以上代码没有显示原始的PHP语句。这是因为PHP解释器已经运行了该脚本,并且用该脚本的输出代替了脚本本身。这就意味着,通过PHP,我们可以生成能在任何浏览器中查看的纯HTML--换句话说,用户的浏览器并不需要理解PHP。

这个例子简要说明了服务器端脚本的概念。PHP脚本在Web服务器上被解释和执行,这与在用户机器上的Web浏览器中解释并执行的JavaScript及其他客户端技术是不同的。

3.使用字符串连接操作符(.)将输出编写在同一行输出。

4.$_POST,$_GET,$_REQUEST数组之一检索变量。$_GET或$_POST数组之一都可以保存表单变量的细节。使用哪一个数组取决于提交表单时使用的方法是POST还是GET。此外,通过POST或GET方法及其组合方式提交的所有数据都可以通过$_REQUEST数组获得。(三个数组都为超级全局变量)

5.从用户输入直接获得输入并输出到浏览器是一个有风险的操作,它可能会带来安全隐患。需要对数据进行过滤。

6.PHP中单引号和双引号的区别:” ” 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。‘ ‘ 单引号里面的不进行解释,直接输出。从字面意思上就可以看出,单引号比双引号要快了。一般情况下两者是通用的.但双引号内部变量会解析,单引号则不解析.所以如果内部只有纯字符串的时候,用单引号(速度快),内部有别的东西(如变量)的时候,用双号引更好点.

7.PHP的特性之一就是它不要求在使用变量之前声明变量。当第一次给一个变量赋值时,你才创建了这个变量。

8.PHP支持如下所示的基本数据类型:Integer(整数)--用来表示整数。Float(浮点数,也叫Double,双精度值)--用来表示所有实数。String(字符串)--用来表示字符串。Boolean(布尔值)--用来表示true或者false。Array(数组)--用来保存具有相同类型的多个数据项。Object(对象)--用来保存类的实例。

9.PHP是一种非常弱的类型语言,或者动态类型语言。PHP可以在任何时间根据保存在变量中的值来确定变量的类型。PHP在任何时间透明地改变类型。

10.使用类型转换,可以将一个变量或值转换成另一种类型。

  $totalqty=0;

  $totalamount=(float)$totalqty;   

  $totalmount变量将变成浮点类型。而被转换的变量并不会改变其类型,$totalqty仍然是整数类型。

11.PHP提供了一种其他类型的变量---可变变量。e.g.

  $varname='tireqty'

      这个特性的原理是用一个变量的值作为另一个变量的名称。

  $$varname=5,等价于$tireqty=5.

 12.一个常量可以保存一个值,常量值一旦被设定后,在脚本的其他地方就不能再更改。可以使用define函数定义这些变量。

  e.g.  define('TIREPRICE',100)

  常量和变量之间的一个重要不同点在于引用一个变量的时候,它前面并没有$符号。

 13.作用域是指在一个脚本中某个变量可以使用或可见的范围:

  1.内置超级全局变量可以在脚本的任何地方使用和可见。

  2.常量,一旦被声明,将可以在全局可见;也就是说,它们可以在函数内外使用。

  3.在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部。

  4.函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致。

  5.在函数内部创建并被声明为静态的变量无法在函数外部可见,但是可以在函数的多次执行过程中保持该值。

  6.在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在了。

  $GET和$_POST数组以及一些其他特殊变量都具有各自的作用域规则。这些被称作超级全局变量,它们在任何地方使用和可见,包括内部和外部函数。

14.超级全局变量的完整列表

  $GLOBALS,所有全局变量数组(就像global关键字,这将允许在一个函数内部访问全局变量--例如,以$GLOBALS['myvariable']的形式)

  $_SERVER,服务器环境变量数组

  $_GET,通过GET方法传递给该脚本的变量数组

  $_POST,通过POST方法传递给该脚本的变量数组

  $_COOKIE,cookie变量数组

  $_FILES,与文件上传相关的变量数组

  $_ENV,环境变量数组

  $_REQUEST,所有用户输入的变量数组,包括$_GET,$_POST和$_COOKIE所包含的输入内容(但是,不包括PHP4.3.0版本以后的$_FILES)

  $_SESSION,会话变量数组

15.唯一的字符串操作符,字符串连接操作符将两个字符串连接起来生成并保存到一个新字符串中。

  e.g. $a="Bob's ";

    $b="Auto Parts";

    $result=$a.$b;

16.引用操作符

  引用操作符&可以在关联赋值中使用。通常,在将一个变量的值赋给另一个变量的时候,先产生原变量的一个副本,然后再将它保存在内存的其他地方。

  例如:$a=5;$b=$a;这两行代码首先产生$a的一个副本,然后再将它保存到$b中。如果随后改变$a的值,$b得值将不会改变。

  可以使用引用操作符&避免产生这样的副本。

  例如,$a=5;$b=&$a;$a=7;   //$a and $b are now both 7

  引用就像一个别名,而不是一个指针。$a和$b都指向了内存的相同地址。可以通过重置它们来改变所指向的地址,如下所示:

  unset($a);

  重置并不会改变$b(7)的值,但是可以破坏$a和值7保存在内存中的链接。

17.比较操作符

  等于操作符==用于测试两个值是否相等。恒等操作符===(三个等于号)。只有当恒等操作符两边的操作数相等并且具有相同的数据类型时,其返回值才为true。

18.逻辑操作符

  &&和and相同,都表示与,但是and优先级较低,||和or,都表示或,但是or优先级较低。

19.位操作符

  位操作符可以将一个整型变量当作一系列的位(bit,比特)来处理。

  &按位与;|按位或;~按位非;^按位异或;<<左位移;>>右位移

20.->用来访问类的成员

21.错误抑制操作符@可以在任何表达式前面使用,即任何有值的或者可以计算出值得表达式之前,例如:$a=@(57/0);

  如果没有@操作符,这一行代码将产生一个除0警告。使用这个操作符,这个警告就会被抑制住。如果通过这种方法抑制了一些警告,一旦遇到一个警告,你就要写一些错误处理代码。

22.执行操作符实际上是一对操作符,它是一对反向单引号(``)。PHP将试着将反向单引号之间的命令当作服务器端的命令行来执行。表达式的值就是命令的执行结果。

23.=》数组操作符

24.类型操作符:instanceof,在面向对象编程中使用,instanceof操作符允许检查一个对象是否是特定类的实例。

25.可变函数,用来测试一个函数的类型的。PHP有两个最常见的函数,分别是gettype()和settype()。这两个函数具有如下所示的函数原型,通过它们可以获得要传递的参数和返回的结果:

string gettype(mixed var);

bool settype(mixed var,string type);

"混合"数据类型。PHP没有这个类型,由于PHP在类型处理方面非常灵活,因此许多函数可以用许多(或者任意)的数据类型作为参数。这些类型所允许的参数通常都是伪“混合”类型。

26.PHP有几个函数可以用来测试变量的状态。它具有如下函数原型:

  bool isset(mixed var);  //如果变量var存在,则返回true,否则返回false

  bool unset(mixed var);

  bool empty(mixed var);  //empty函数可以用来检查一个变量是否存在,以及它的值是否为非空和非0。

27.可以通过调用一个函数实现转换变量数据类型的目的。e.g. int intval(mixed var [, int base]);

28. PHP有几个函数可以用来测试变量的状态。第一个函数就是isset()。

  函数原型:boole isset(mixed var);[;mixed var[,...]]

  这个函数需要一个变量名作为参数,如果这个参数存在,则返回true,否则返回false。也可以传递一个由逗号间隔的变量列表,如果这些变量都被设置了,isset()函数将返回true。

  还可以使用与isset()函数相对应的unset()函数来销毁一个变量。它具有如下所示的函数原型:

  void unset(mixed var);    [;mixed var[,...]]         //这个函数将销毁一个传进来的变量

  函数empty()可以用来检查一个变量是否存在,以及它的值是否为非空和非0,相应的返回值为true或false。它具有如下所示的函数原型:

  bool empty(mixed var);

29.变量的重解释:可以通过调用一个函数来实现转换变量数据类型的目的。

  int intval(mixed var [, int base]);      //用于指定进制基数

  float floatval(mixed var);

  string strval(mixed var);

  每个函数都需要接收一个变量作为其输入,然后再将变量值转换成适当类型返回。

30.foreach循环语句,专门用于数组的使用

31.如果希望停止一段代码的执行,根据所需要达到的效果不同,可以有3种方法来实现。

  如果希望终止一个循环,使用break语句,如果在循环中使用了break语句,脚本就会从循环体后面的第一条语句处开始执行。

  如果希望跳到下一次循环,可以使用continue语句

  如果希望结束整个PHP脚本的执行,可以使用exit语句。当执行错误检查时,这个语句非常有用。

32.PHP中另一个控制结构是declare结构,它并没有像其他结构一样在日常编程中经常使用。

  常见形式为:

  declare(directive){}

  目前,只实现了一个执行指令,ticks。它可以通过插入指令ticks=n来设置。它允许在代码块内部每隔n行代码运行特定的函数,这对于性能测试和调试来说非常有用。