2.33k likes | 2.56k Views
PHP 介绍. 什么是 PHP PHP 是一种服务器端 HTML- 嵌入式脚本描述语言。 其最强大和最重要的特征是其数据库集成层,使用它完成一个含有数据库功能的网页是不可 置信的简单。 在 HTML 文件中, PHP 脚本程序(语法类似于 Perl 或者 c 语言)可以使用特别的 PHP 标签进行引用,这样网页制作者也不必完全依赖 HTML 生成网页了。 PHP 是在服务器端执行的,客户端是看不到 PHP 代码的。 PHP 可以完成任何 CGI 脚本可以完成的任务,但它的功能的发挥 取决于它和各种数据库的兼容性。
E N D
PHP介绍 • 什么是PHP • PHP是一种服务器端HTML-嵌入式脚本描述语言。 • 其最强大和最重要的特征是其数据库集成层,使用它完成一个含有数据库功能的网页是不可 置信的简单。 • 在HTML文件中, PHP脚本程序(语法类似于Perl或者c语言)可以使用特别的PHP标签进行引用,这样网页制作者也不必完全依赖 HTML生成网页了。 • PHP是在服务器端执行的,客户端是看不到PHP代码的。 • PHP可以完成任何CGI脚本可以完成的任务,但它的功能的发挥 取决于它和各种数据库的兼容性。 • PHP除了可以使用HTTP进行通信,也可以使用IMAP, SNMP, NNTP, POP3协议。
PHP介绍 • 第一个PHP程序 • <html> • <head><title>Hello world</title></head> • <body> • <p> • <?php echo “Hello world”; • ?> • </p> • </body> • </html>
PHP介绍 • PHP标记风格 • 1.xml风格 <?php echo ‘hello , world’; ?> • 2.简短风格<? ehco ‘hello , world’; ?> • <?= expression ?> • This is a shortcut for "<? echo expression ?>" • 3.script风格 • <script language=‘php’>echo “hello , world” ;</script> • 4.asp风格 • <% echo ‘hello world’;%>
PHP标记风格 • 例子 10-1. 高级分离术 • <?phpif ($expression) { ?> <strong>This is true.</strong> <?php } else { ?> <strong>This is false.</strong> • <script langue=“js”> </script> <?php } ?>
PHP介绍 • 语法结构 • 编程语言的的语法结构是指管理如何用语言写程序的基本规则的集合,语法结构是最低级的语言语法,并且指定了变量是什么样子,什么字符常用做注释、以及如何将程序语句分开等。
PHP介绍 • 大小写 • 1。同内置结构和关键字(如:echo 、while、class等等)一样,用户自定义的类名和函数名也是不区分大小写的。 • 所以下面的三行是等价的; • echo(‘hello,world’); • ECHO(‘hello,world’); • EcHo(‘hello,world’); • 2。变量是区分大小写的。
PHP介绍 • 语句和分号 • 语句是完成一些任务的PHP代码集合。语句可以简单到只是一个变量赋值,也可以复杂到有多个退出点的循环。 • echo “hello, world”; • Myfunc (42,“hello world”); • $a=1; • $name=“phpchina”; • $b=$a; • If($a==$b){echo “php and flex”}
PHP介绍 • 语句和分号 • PHP用分号来分离简单语句。 • 复合语句用大括号来标记代码快,如条件测试或是循环, • 条件测试或是循环在右括号的后面不要用分号。
PHP介绍 • 空白符和换行符 • 一般来说、空白符在PHP中无关紧要。可以将一个语句展开成任意行,或者将语句紧缩在一行。 • 例如: • reise_prices($inventory, $inflation, $cost_of_living, $greed); • 也可以写进更多的空白符: • reise_prices( • $inventory , • $inflation , • $cost_of_living , • $greed , • );
PHP介绍 • 注释 • 注释是提供给阅读代码的人的信息,PHP会忽略注释。 • 1.shell形式的注释:‘#’ 在php中遇到‘#’号时,在其后直到行尾都被认为是注释。 • 2.C++形式的注释:‘//’当在PHP中遇到两个斜杠(//)时,其后一直到行尾都被认为是注释。 • 3.C形式的注释:’/*………..*/’,在此区间的内容是被注释的内容。
PHP介绍 • 直接量 • 直接量(literal)是直接出现在程序中的数据。 • 如下: • 2008 • “Hello world” • 标识符 • 标识符(identifier)只是一个名字,在PHP中标识符常用于给变量、函数、常量和类命名。 • 1.标识符可以是任何长度,而且可以由任何字母、数字、下划线组成。 • 2.标识符不能以数字开始。 • 3.在PHP中,标识符是区分大小写的。 • 4.一个变量名称可以与一个函数名称相同。
PHP介绍 • 创建声明的变量 • 变量名是以美元符号($)并且区分大小写。 • 给变量赋值: • $totalqty=0; • $tatalamount=0.00;
PHP介绍 • PHP的数据类型 • 整数 • PHP支持如下所示的基本数据类型: • Integer(整数)——用来表示整数 • Float(浮点数,也叫Double,双精度)——用来表示所有的实数。 • String(字符串)——用来表示字符串 • Boolean(布尔)——用来表示true或false • Array(数组)——用来保存具有相同类型的多个数据项。 • Object(对象)——用来保存实例
PHP介绍 • 类型转换 • 使用类型转换可以将一个变量或值转换成另一种类型。 • 这种转换与C语言的类型转换是相同的。只需要在希望进行类型的变量之前的圆括号中插入需要转换为临时数据类型。 • $totalqty=11.999; • $totalamount=(int)$totalqty; • echo $totalamount;
PHP介绍 • 可变变量 • 可变变量是允许我们动态的改变一个变量的名称。 • $varname='tireqty'; • $$varname=5; • $tireqty=5;
PHP介绍 • 常量 • 常量是简单值的标识符。常量只可以布尔值、整数、浮点数或字符串数据。 • 使用define函数定义这些常量 • 如下: • Define(‘tireprice’,100); • Define(‘oilprice’,10); • Define(‘sparkprice’,4); • 内置常量 • PHP_OS • PHP_VERSION • echo PHP_OS; • echo PHP_VERSION
PHP介绍 • 使用操作符 • 操作符是用来对数值和变量进行某种操作运算的符号。 • <form action=“<?=PHP_SELF?>” method=“get”> • </form>本页提交 • <form action=“aa.php” method=“get”> • </form>其它也提交 • <input type=“text” name=“bb” value=“<?=$_GET[“bb”]?>”/> • 得到PHP中的value值。
PHP介绍 • 算数操作符 • 算数操作符非常直观——他们就是常见的数学操作符。 • 相加: $a + $b • 相减: $a - $b • 相乘: $a * $b • 相除: $a / $b • 取模: $a % $b
PHP介绍 • <?php $a=5; $b=2; echo $a-$b."<br />"; //3 echo $a+$b."<br />"; //7 echo $a*$b."<br />"; //10 echo $a/$b."<br />"; //2.5 echo $a%$b."<br />"; //1 • ?>
PHP介绍 • 赋值操作符 • 赋值运算符是最常用的运算符 • = 为赋值运算符,赋值运算符右面的值,赋给左面的变量 • $a= “abc”; abc的值赋给 变量$a • $a的数据类型也由运算符右面的值决定 • 除此之外,赋值运算符还有组合赋值形式 • $a +=5; ----------$a=$a + 5 ;
PHP介绍 • 赋值操作符 • --------------------------------------------------- • 操作符 使用方法 等价 • --------------------------------------------------- • += $a+=$b $a=$a+$b • -= $a-=$b $a=$a-$b • *= $a*=$b $a=$*$b • /= $a/=$b $a=$a/$b • %= $a%=$b $a=$a%$b • ·= $a.=$b $a=$a.$b • ---------------------------------------------------
PHP介绍 • 赋值操作符 • 前置递增递减和后置递增递减运算符 • 前置递增递减和后置递增递减运算符类似于+=和-=操作符, • 所有的递增操作符都有两个功能-----将变量增加1后再将值赋给原变量。 • $a=4; • Echo ++$a; • $b=5; • Echo $b++;
PHP介绍 • 赋值操作符 • 引用 • 引用操作符可以在关联赋值中使用。通常,在将一个变量的值赋给另一个变量的时候,然后再将他保存在内存的其他地方 • $a=5; • $b=$a; • $b=&$a;
PHP介绍 • 细说引用 • <?php $a = 1; function foo($num){ return $num++; } foo($a); echo $a; // 输出的是1而非2 ?> • <?php $a = 1; function foo(&$num){ return $num++; } foo($a); echo $a; // 输出的是2而非1 ?> • 对比这两个例子,说明按照引用传递的时候,对于变量的改变会被记录下来。因为传递的是引用地址而非值的拷贝。
PHP介绍 • 比较操作符 • 1.等于操作符 • 相等的比较操作符==(两个等于号)允许测试来那个值是否相等。 • $a==$b • 2.其他比较操作符
PHP介绍 • === $a===$b $a恒等于$b 表达式返回true • = = $a == $b $a与$b数值相等 表达式返回true • < $a<$b $a 小于$b 表达式返回true • > $a>$b $a大于 $b 表达式返回true • <= $a<=$b $a小于等于 $b 表达式返回true • >= $a>=$b $a大于等于 $b 表达式返回true • != $a!=$b 数值不相等 表达式返回true
PHP介绍 • 逻辑操作符 • (php中存二进制补码;先将原码转化为补码进行以下操作。补=反+1,反码不改变符号位) • 逻辑操作符用来组合逻辑条件的结果。 • 逻辑与(and,&&) • 左右值都为真 表达式返回 true • 逻辑或(or,||) • 左右值有一个为真 表达式返回 true • 逻辑非(!) • 逻辑非后的值为假 表达式返回 true • 逻辑异或(xor ^) • 值有且只有一个为真 表达式返回 true • 如果 $a 或 $b 任一为 TRUE,但不同时是,表达式返回 true
PHP介绍 • 位操作符 (php中存二进制补码;进行以下操作后将原码转化为补码。补=反+1.) • 位操作符可以将一个整形变量当作一系列的位来处理。 • 1.逐位求反(~) • 这个逐位操作符将二进制表示的操作数中的1变成0,0变成1. • 2.逐位与(&) • 逐位与操作符比较二进制表示的操作数的每一个相应位。如果两个操作数的相应位都是1,则结果值的相应位是1;否则结果位的相应值是0; • 3.逐位或(|) • 逐位或操作符比较二进制表示的操作数的每一个相应位。如果两个操作数的相应位都是0、则结果的相应为是0;否则结果的相应为是1.
PHP介绍 • 位操作符 • 逐位异或(^) • 逐位异或操作符比较二进制表示的操作数的每一个相应位。如果一对相应位中任意一个是1,但不是同时都是1,则结果是1,否则结果是0。 • 左位移(<<) • 左位移操作符将左边操作数的二进制表示的位左移,移位位数由右边的操作数给出。 • 右移位(>>) • 右移位操作符将左边操作数的二进制表示的位右移,移位位数由右边的操作数给出。
PHP介绍 • 细说移位 • $a=42$a左移1位=84$a左移3位=336$a右移1位=21$a右移2位=10 • 左移一位, $a * 2^1; 42 * 2 = 84左移两位, $a * 2^2; 42 * 4 = 168左移三位, $a * 2^3; 42 * 8 = 336 • 右移一位, floor($a / 2^1) , floor( 42 / 2) =21右移两位, floor($a / 2^2) , floor(42 / 4)=10
PHP介绍 • 其他操作符 • 三元运算符 • 对三个值进行操作( ? : ) $a==0 ? “zero”:”other”; • echo $a==0 ?”zero”:”other”; • 字符串连接符号:用(.)符号连接字符串 • echo “abc”.”bcd”.”<br>”; .= • 变量操作符($) • $符号标识变量,$后面的字符为变量的名称
PHP介绍 • 流程控制 • 恰当的使用条件,循环,判断等语句可以使程序条例清晰,实现强大的功能 • 条件语句 • 循环语句 • 判断语句
PHP介绍 • 条件语句 • If 条件语句: • 括号中语句的返回值(true或false)来控制是否执行指定的代码程序 • 如果需要控制多个语句,要求把多个语句放在 { }中 • 当条件不满足 : • 数字零,空,未定义的字符串,内置常量false都会返回假 • if语句的返回值为假,可使用关键字else执行指定代码
PHP介绍 • 条件语句 • switch 语句在测试多个值的时候非常管用,理论上, 用if语句也可以但switch 语句执行起来更快和简单而且更稳定 • 语句结构: • switch() { case : break;} • 程序顺序执行 • 执行switch括号中的语句其中的返回值与case的值相等 • 执行case后面的语句直到遇到break为止 • 并跳出switch后面的语句
PHP介绍 • 循环语句 • while 循环语句 • while(condition) { statement; } • 注意事项: • condition的返回值为布尔值 • 返回值为true ,继续执行statement 语句之后继续检查condition条件 • 返回值为false,直接跳出while循环,不执行statement语句
PHP介绍 • 循环语句 • 如果在满足condition的情况下需要跳出while • 可以在statement中使用break 或 continue • 区别: • break 跳出整个循环 • continue跳出这次循环继续执行while中的condition条件
PHP介绍 • 循环语句 • do-While循环语句 • 语句格式: do { statement ; } • while (condition ) • 首先执行statement中的语句后查看while中的condition条件 • 当condition的返回值为真时那么继续执行statement语句 • 同样也可以在statement中使用break 或 continue
PHP介绍 • 循环语句 • for 循环 for (exp1;exp2;exp3) { statement ; } • 第一步:exp1 赋值语句,初始化循环变量 • 第二步:exp2 循环控制语句,返回一个布尔值 • 返回值为true 继续循环下面括号中statement的语句 • 返回值为false 停止循环 • 第三步:exp3 递增,递减循环变量用于控制程序的执行
PHP介绍 • 函数 • 函数是一段完成指定任务的已命名代码,函数可以遵照给它的一组值或参数完成任务,并且返回一个值。
PHP介绍 • 函数的特点: • 定义后在程序中可以重复调用的程序模块 • 典型的函数有一个或一系列的参数 • 根据参数执行一定的操作完成特定的功能 • 函数可以使整个程序非常的模块化,有良好的结构 • 用函数来代替一些经常重复的代码,整个程序中只要调用函数即可
PHP介绍 • 函数分为:内置函数和自定义函数 • 内置函数: • PHP系统提供的大量的功能强大的函数,帮助我们解决各种问题,我们在以后的学习中会逐步使用 • Echo 函数名(形参);
PHP介绍 • 自定义函数 • 函数是用function关键字来声明 • function name(参数) { 函数体; return 返回值; } • 用name(参数); 调用函数 • 用关键字function 声明函数的名称(这里是name); • 参数出现在括号中(如果有多个参数的话)用逗号分隔
PHP介绍 • 自定义函数 • 函数名称是由字母或下划线开始,中间可以包含数字 • 注意不同语言的区别: • 在Java等强类型语言中方法的名字严格区分大小写 • C语言中的函数也是严格区分大小写 • 但PHP到现在的版本,函数名称不区分大小写 • 很多语言允许函数(方法)的重载 • 即函数有相同的名称但是函数参数不同 • PHP不支持函数的重载 • 自定义函数不能和内置函数重名,不能在一个文件中自定义同名的函数 • 函数体需要返回的值由return关键字标识
PHP介绍 • 变量作用域和生命周期 • 由于引入了函数,程序中变量的能见度发生了变化 • 变量的作用范围发生了改变 • 变量分为全局变量,局部变量 • 全局变量 • 函数体外定义的变量为全局变量,在程序中可见可用 • 如果在函数体中需要调用时,使用关键字global调用 • 全局变量的作用域是从声明它们开始的那条语句开始 • 到文件末尾,在函数内部使用时,需要先使用global
PHP介绍 • 变量作用域和生命周期 • 局部变量 • 函数体内定义的变量为局部变量,只在函数体内可见 • 局部变量的作用域 • 从声明它的那条语句开始到函数结束
PHP介绍 • 变量作用域和生命周期 • $_POST 通过POST方式传递变量数组 • $_GET 通过GET方式传递变量数组 • $_COOKIE cookie变量数组 • $_FILES 文件上传数组变量 • $_SESSION 会话变量数组 • $_REQUEST 接收传递变量数组
PHP介绍 • 变量生命周期 • 如果我们希望在函数中把变量的值保留到下次调用 • 使用关键字static • 用 static 定义的变量为静态变量 • 实例:static.php • 思考static 与global的区别
变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。看看下面的例子: 例子 演示需要静态变量的例子 • <?PHP function Test() { $str = 0; echo $str; $str++; } ?> echo Test().”<br>” echo Test();本函数没什么用处,因为每次调用时都会将 $ str的值设为 0 并输出 "0"。将变量加一的 $ str ++ 没有作用,因为一旦退出本函数则变量 $ str就不存在了。要写一个不会丢失本次计数值的计数函数,要将变量 $ str定义为静态的: • 例子 使用静态变量的例子 • <?PHP function Test() { static $str = 0; echo $str; $str++; } ?> echo $str.”<br>”. Test().”<br>” echo Test();现在,每次调用 Test() 函数都会输出 $ str的值并加一。
PHP介绍 • 函数的参数 • 默认参数 • 函数存在其它参数时习惯上默认参数放后面 • 实例:fun_c.php
PHP介绍 • 参数传值与传址 • 传值 • 把变量参数的数值传入 • 传入函数后的变量拥有自己的空间 • 函数体内变量的改变,不会影响到函数体外的变量 • 传址 • 变量本身传入,传入后的变量与原变量建立联系 • 函数体内变量的变化,会影响到原变量本身