• 1. 第三章 PHP基础知识 PHP代码剖析 PHP的数据类型 PHP的变量和常量 PHP的操作符 PHP的流程控制
  • 2. PHP5代码剖析 *Sample.php * ------------------------------ * Date : Sep 7, 2007 * Copyright : [Discuz!] (C) Comsenz Inc. * Mail : * Desc. : php sample * History : * Date : * Author : * Modif. : * Usage Example : //浏览器显示 ”This is a PHP Sample” ***************************************************************************/

    Welcome!,

    //下面为PHP脚本 This is a PHP Sample

    ”; ?> 介绍性的注释(必须)PHP脚本
  • 3. PHP5代码剖析 语法标记: 语法标记种类评价<% …… %>
  • 4. PHP5代码剖析 语法标记种类评价//title:My first php scirpt //author:Mike/*************************************************************************** * Date : Sep 7, 2007 * Copyright : [Discuz!] (C) Comsenz Inc. *浏览器显示 ”This is a PHP Sample” ***************************************************************************/ 代码注释:单行注释以双斜线(//)开头;多行注释以(/*)开始,以(*/)结束。
  • 5. PHP5代码剖析之输出语句 NO类型说明1print( ) I love the summertime.

    ); ?> 2echo( ) Result : Lennox Lewis and Floyd Mayweather are great fighters. 注:echo()语句不能用在复杂表达式中,返回void,而print()返回Boolean值。 echo()能输出多个字符串.3printf( ) Result: $43.204sprintf() Result: $cost = $43.20 注:sprintf()函数的功能与printf()相同,但它是将输出指派到字符串,而不是直接指派到标准输出。
  • 6. PHP5数据类型 NO类型说明1布尔型(boolean) 备注:也可以使用0来表示FALSE;1来表示TRUE;2整型(integer) 3浮点型(float)(浮点数,也作“double”) 4字符串(string)
  • 7. PHP5数据类型 NO类型说明5数组 ( array) 定义:array( [key =>] value , ... ) // key 可以是 integer 或者 string // value 可以是任何值 ; 举例: "bar", 12 => true); echo $arr["foo"]; // bar echo $arr[12];    // 1 ?> 6 对象 (object) do_foo(); ?>7Null 注: Null 特殊的 NULL 值表示一个变量没有值,NULL 类型唯一可能的值就是 NULL。
  • 8. PHP5数据类型之类型转换 PHP 在变量定义中不需要(或不支持)明示的类型定义;变量类型是根据使用该变量的上下文所决定的。也就是说,如果你把一个字符串值赋给变量 var,var 就成了一个字符串。如果你又把一个整型值赋给 var,那它就成了一个整数。 PHP类型强制转换: 在要转换的变量之前加上用括号括起来的目标类型 与类型有关的函数 settype( ) example: boolean settype ( mixed var,string type ) /*type有7种类型可能取值。*/ gettype( ) example:string gettype (mixed var) /* var有7种类型和unknow.
  • 9. PHP5的变量和常量 变量:PHP 中一个美元符号后面跟上一个变量名称,即表示一个变量。变量的名称是对大小写是区分的。 PHP 提供了另外一种方式给变量赋值:传地址赋值 Result: My name is Bob My name is Bob 注意:只有命名变量才可以传地址赋值,这一点非常重要
  • 10. PHP代码编辑器Adobe DreamWeaverCS PHPDesigner7 Zend Studio
  • 11. Web托管服务提供商专业服务器托管 租用一个完整的Web服务器 共享服务器托管 共享一定的空间,一个服务器上托管多个网站 虚拟私人服务器托管 介于两者之间,为每个用户提供一个专用的操作系统,能够安装应用程度并通过虚拟化完全管理服务器。
  • 12. PHP5的变量的作用域PHP变量作用域推荐度局部变量函数变量全局变量静态变量
  • 13. PHP5的变量的作用域 局部变量和函数变量 全局变量
  • 14. PHP5的变量的作用域 静态变量:静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失 。
  • 15. PHP5的变量的作用域

    Email address:

    Password:

    PHP的超级全局变量 $_POST 通过目标脚本subscribe.php,就可以使用下面的POST变量: $_POST[‘email’] = jason@example.com; $_POST[‘pswd’] =“123456”;
  • 16. PHP5的常量 常量:常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变 。常量默认为大小写区分。按照惯例常量标识符总是大写的 可以用 define() 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。 常量只能包含标量数据(boolean,integer,float 和 string)。 常量和变量不同: 常量前面没有美元符号($); 常量只能用 define() 函数定义,而不能通过赋值语句; 常量可以不用理会变量范围的规则而在任何地方定义和访问; 常量一旦定义就不能被重新定义或者取消定义; 常量的值只能是标量。
  • 17. PHP5的操作符 算术操作符 赋值操作符 字符串操作符 自增和自减操作符 逻辑操作符 相等操作符 比较操作符 位操作符
  • 18. 算术操作符 例子名称结果$a + $b加法$a 和 $b 的和。$a - $b减法$a 和 $b 的差。$a * $b乘法$a 和 $b 的积。$a / $b除法$a 除以 $b 的商。$a % $b取模$a 除以 $b 的余数。
  • 19. 算术操作符 两个数相除的结果是取其整数部分。 两个数取模的结果是取余数。
  • 20. 赋值操作符 示例说明输出$ a = 5赋值$ a 等于 5$ a + = 5加法赋值$ a 等于 $ a 加 5$ a - = 5减法赋值$ a 等于 $ a 减 5$ a * = 5乘法赋值$ a 等于 $ a 乘以 5 $ a / = 5除法赋值 $ a 等于 $ a 除以 5 $ a . =5拼接赋值$ a 等于 $ a 拼接 5字符串操作符 第一个是连接运算符(“.”),它返回其左右参数连接后的字符
  • 21. 自增和自减操作符 例子名称效果++$a前加$a 的值加一,然后返回 $a。$a++后加返回 $a,然后将 $a 的值加一。--$a前减$a 的值减一, 然后返回 $a。$a--后减返回 $a,然后将 $a 的值减一。
  • 22. 自增和自减操作符 Postincrement"; $a = 5; echo "$a++ . "
    \n"; echo "$a . "
    \n"; echo "

    Preincrement

    "; $a = 5; echo "++$a . "
    \n"; echo " $a . "
    \n"; echo "

    Postdecrement

    "; $a = 5; echo "$a-- . "
    \n"; echo "$a . "
    \n"; echo "

    Predecrement

    "; $a = 5; echo "--$a . "
    \n"; echo "$a . "
    \n"; ?> 5 6 6 6 5 4 4 4
  • 23. 逻辑操作符 例子名称结果$a and $bAnd(逻辑与)TRUE,如果 $a 与 $b 都为 TRUE。$a or $bOr(逻辑或)TRUE,如果 $a 或 $b 任一为 TRUE。$a xor $bXor(逻辑异或)TRUE,如果 只有$a 或 $b 任一为 TRUE,但不同时是。! $aNot(逻辑非)TRUE,如果 $a 不为 TRUE。$a && $bAnd(逻辑与)TRUE,如果 $a 与 $b 都为 TRUE。$a || $bOr(逻辑或)TRUE,如果 $a 或 $b 任一为 TRUE。
  • 24. 相等操作符 例子名称结果$a == $b等于TRUE,如果 $a 等于 $b。$a === $b全等TRUE,如果 $a 等于 $b,并且它们的类型也相同。(PHP 4 only)$a != $b不等TRUE,如果 $a 不等于 $b。 注意:”=“ 与 “==“的区别 例子名称结果$a = $b赋值将$b的值赋值给$a $a = = $b等于TRUE,如果 $a 等于 $b。
  • 25. 比较操作符 例子名称结果$a <> $b不等TRUE,如果 $a 不等于 $b。$a !== $b非全等TRUE,如果 $a 不等于 $b,或者它们的类型不同。(PHP 4 only)$a < $b小与TRUE,如果 $a 严格小于 $b。$a > $b大于TRUE,如果 $a 严格 $b。$a <= $b小于等于TRUE,如果 $a 小于或者等于 $b。$a >= $b大于等于TRUE,如果 $a 大于或者等于 $b。另外一个条件运算符是“?:”(或三元)运算符,它和 C 以及很多其它语言的操作一样。 //如果$a等于12,返回值为5;否则返回值为-1;
  • 26. 位操作符 位运算符主要是对整型数中指定的位进行置位。 十进制整数二进制表示形式2001050101101010首先看一下二进制的表示形式 位操作符 例子名称结果$a & $bAnd(按位与)将在 $a 和 $b 中都为 1 的位设为 1。$a | $bOr(按位或)将在 $a 或者 $b 中为 1 的位设为 1。$a ^ $bXor(按位异或)将在 $a 和 $b 中不同的位设为 1。~ $aNot(按位非)将 $a 中为 0 的位设为 1,反之亦然。$a << $bShift left(左移)将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。$a >> $bShift right(右移)将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。
  • 27. 位操作符 先说左移,左移就是把一个数的所有位都向左移动若干位,在PHP中用$a << $b 表示 也就是说,1的2进制是000...0001(这里1前面0的个数和整数的位数有关,32位机器,i里有31个0),左移2位之后变成000...0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了再说右移,右移就是把一个数的所有位都向右移动若干位,在PHP中用$a >>$b 表示>$ j;    //把$ i里的值右移2位 ?> 也就是说,2的2进制是000...0010(这里2前面0的个数和整数的位数有关,32位机器,i里有30个0), 右移2位之后变成000...0001,也就是10进制的1,所以说右移1位相当于除以2,那么右移n位就是除以2的n次方了
  • 28. 双引号 Result :Jason’s favorite sport is boxing转义序列描述\n换行符\r回车\\反斜杠\$美元符\”双引号\[0-7]{1,3}八进制记法\x[0-9A-Fa-f]{1,2}十六进制记法可识别的转义序列
  • 29. 结合方向运算符左,左or左xor左and右print右= += -= *= /= .= %=左? :左||左&&左|左^左&无== != === !==无< <= > >=左<< >>左+ - .左* / %右[无new操作符的优先级和结合性
  • 30. 操作符的优先级 PHP遵循小学算术课所用的标准优先级规则 $ total_cost = $cost + $cost *0.6; 可以等价为: $ total_cost = $cost +($cost *0.6); //乘法操作符的优先级比加法操作符的高。 操作符结合性 结合性可以有两个方向:从左到右或从右到左 $value =3 * 4 * 5 * 6 * 7 * 2; 等价为: $value = ((((3*4) *5) *6) *7) *2); //从左到右结合 $c = 5; print $value =$a =$b =$c; 可以等价为: print $value = ($a =($b=$c)); //从右到左结合
  • 31. PHP5的流程控制 If 语句的基本格式是: if (expr) { statement }
  • 32. PHP5的流程控制 elseif 语句 If –else 语句 (对于”二选一“的情况非常实用)
  • 33. PHP5的流程控制 switch 语句(可以看作是if-else组合的一种变化,如果需要比较有很多值的变量,通常会使用该语句。 What’s happening around the World

    ”; break; case “weather”: print “

    Your weekly forecast

    ”; break; case “sports”: print “

    Latest sports highlights

    ”; break; default: print “

    Welcome to my Web site

    ; }     ?>
  • 34. PHP5的流程控制 注意:在每个case块的末尾处都有break语句。如果没有break语句,就会执行所有后续的case块,直到遇到break语句为止。如果把上例中的所有break语句删除,并将$catagory设置为weather.结果?Result: Your weekly forecast Latest sports highlights Welcome to my Web site
  • 35. PHP5的流程控制 while ; while 循环是 PHP 中最简单的循环类型。 while 语句的基本格式是: while (expr) statement while 语句的含意很简单,它告诉 PHP 只要while 表达式的值为 TRUE 就重复执行嵌 套中的循环语句。表达式的值在每次开始循环时检查,直到本次循环结束。有时候如果 while 表达式的值一开始就是 FALSE,则循环语句一次都不会执行。
  • 36. PHP5的流程控制 Result: Example1: 1 2 3 4 5 6 7 8 9 10 Example2: 1 2 3 4 5 6 7 8 9 10
  • 37. PHP5的流程控制 do……while ; do……while 循环是while的一种变化,它在代码块的结束处验证循环条件,而不是在开始处。while 语句的基本格式是: do { statement }while (expr) while 语句和do...while语句在功能上相似;唯一区别是while语句中的代码块可能 永远不会被执行;而do...while语句中的代码块总是至少会执行一次。”; while ($ count <= 10)     } ?> Result: 11 squared =121
  • 38. PHP5的流程控制 for 循环是 PHP 中最复杂的循环结构。 for 循环的语法是: for (expr1; expr2; expr3) statement 第一个表达式(expr1)在循环开始前无条件求值一次。 expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。 expr3 在每次循环之后被求值(执行)。 每个表达式都可以为空。expr2 为空意味着将无限循环下去(死循环) 。 10) {         break;     }     print $i; }
  • 39. PHP5的流程控制 /* example 3 */ $i = 1; for (;;) {     if ($i > 10) {         break;     }     print $i;     $i++; } /* example 4 */ for ($i = 1; $i <= 10; print $i, $i++); ?> Result: example 1: 1 2 3 4 5 6 7 8 9 10 example 2: 1 2 3 4 5 6 7 8 9 10 example 3: 1 2 3 4 5 6 7 8 9 10 example 4: 1 2 3 4 5 6 7 8 9 10
  • 40. PHP5的流程控制 foreach PHP 5包括了 foreach 结构,这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。 foreach语法: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement 第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。 第二种格式做同样的事,只除了当前单元的键值也会在每次循环中被赋给变量$key。 注: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。 注: 此外注意 foreach 所操作的是指定数组的一个拷贝,而不是该数组本身, foreach 所操作后,数组单元的值也不受影响。
  • 41. PHP5的流程控制 \n"; } ?> Result: Value: one Value: two Value: three 1,     "two" => 2,     "three" => 3,     "seventeen" => 17 ); foreach ($a as $k => $v) {     print "\$a[$k] => $v.\n"; }
  • 42. PHP5的流程控制 Result: $a[one]=>1 $a[two]=>2 $a[three]=>3 $a[seventeen]=>17 break语句 break 结束当前 for,foreach,while,do..while 或者 switch 结构的执行。 5 ) { break; }  print $ count; } ?>
  • 43. PHP5的流程控制 continue continue 在循环结构用用来跳过本次循环中剩余的代码并开始执行下一次循环。 ” } ?> Result: Staff member: grace Staff member: doris Staff member: gray Staff member: nate Staff member: tom
  • 44. PHP5的流程控制 include( )include(/path/to/filename ) include( )语句将在其被调用的位置处包含一个文件。包含一个文件与在该语句所在位置复制指定文件的数据具有相同内容的结果以下文档也适用于 require()。这两种结构除了在如何处理失败之外完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的 路径。 vars.php test.php
  • 45. PHP5的流程控制 当一个文件被包括时,其中所包含的代码继承了 include 所在行的变量范围。vars.php