版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第21章PHP编程
第三部分网站设计技术第21章PHP编程第三部分网站设计技术121.1PHP概述优势在于:PHP是免费的PHP是跨平台的PHP受到广泛支持。诸如IIS、Apache等服务器软件都支持PHP。21.1PHP概述优势在于:2PHP是英文PersonalHomePage的缩写。工作原理通过使用PHP编写的网页访问服务器时,脚本首先传给PHP引擎,在它进行处理后再将处理结果HTML文本传给Web服务器,Web服务器再将HTML代码返回给相应的客户,客户端的浏览器解释HTML代码在客户端屏幕显示网页内容。PHP代码是在服务器端运行的,HTML代码是在客户端运行的,这就是PHP与脚本语言的最大区别。PHP是英文PersonalHomePage的缩写。32.PHP最简单实例<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>PHP最简单实例</title></head><body><?phpecho"HelloWorld!";?></body></html>2.PHP最简单实例<html>4PHP的描述方法<?PHP“HelloWorld!”;?>标准描述<scriptlanguage=“PHP”>标准描述
“HelloWorld!”;</script><?“HelloWorld!”;?>
需要php.ini设置short_open_tag=On(缺省on)<%“HelloWorld!”;%>
需要php.ini设置asp_tags=on(缺省off)PHP的描述方法<?PHP“HelloWorld!”;53.PHP的注释方式3.PHP的注释方式64PHP的语句分隔
PHP语句之间使用分号“;”分隔由于?>标志PHP语言块的结束,它前一行语句的分号可以省略4PHP的语句分隔PHP语句之间使用分号“;”分隔75.PHP的HTML输出
PHP使用echo、print和printf等命令函数输出信息。<?phpecho"这是echo输出的一个实例。";echo"<br>";$tmp="这本书的价格是:";$sid=32.5;print$tmp.$sid."元".<br>";?>5.PHP的HTML输出PHP使用echo、print和821.2变量、运算符与表达式21.2.1PHP数据类型简单数据类型数字类型字符串,组合数据类型。数组类21.2变量、运算符与表达式21.2.1PHP数据类型9数据类型-数字整型数:18,O17,Ox18浮点数:0.1234
.1231.23456E+5
返回数据类型-数字整型数:18,O17,Ox18返回10数据类型-字符串单引号字符串:’实验’,’Mary\’sbook’双引号字符串:“书名是\“三国演义\””反引号字符串:PHP运行系统命令例如DIR数据类型-字符串单引号字符串:’实验’,’Mary\’sb11返回<html><body><?php$MyStr="Hello,World!";echo"$MyStr<br>";echo'$MyStr<br>';echo$MyStr;print"<br>";print"书名是\"三国演义\"<br>";print'书名是\"三国演义\"<br>';?><?php//运行DIR命令echo"<pre>";echo`dir`;echo"<pre>";?></body></html>返回<html>1221.2.2PHP标识符构成规则⑴字母、数字和下划线;⑵标识符的长度是任意的;⑶标识符的第一个字符必须是字母或下划线。大小写敏感的变量名、数组名、函数名前须要加一个美元货币符号“$”变量是不需要声明的21.2.2PHP标识符构成规则13变量的作用域变量的作用域就是变量起作用的范围①局部变量局部变量是指在某个函数内部定义的变量,它的作用域只限于它所在的函数。与C语言中的局部变量相同,当所在的函数调用结束后,局部变量被分配的存储空间就会被撤消,局部变量也随之消失。②全局变量全局变量在所有的函数之外声明,与其他编程语言不同的是,PHP中的全局变量并不是在函数内部可见。在PHP中创建一个函数时,必须明确告诉PHP在这个函数中需要使用哪些全局变量变量的作用域变量的作用域就是变量起作用的范围14<?php$global_var="Hello,World!";functionecho_str(){global$global_var;echo"$global_var";}echo_str();?><?php$sample_var="Hello,World!";functionecho_str(){$sample_var="Hello,World!I’mcoming!";echo"$sample_var";}echo_str();?><?php<?php15要使全局变量通透到函数中去,还可以使用$GLOBALS[]数组。$GLOBALS[]是一个相关数组,它的下标是全局变量名,而值则是对应的变量所包含的内容。<?php$global_var="Hello,World!";functionecho_str(){echo"$GLOBALS[global_var]";}echo_str();?>要使全局变量通透到函数中去,还可以使用$GLOBALS[]数16③静态变量静态变量:函数结束运行后它所占用的存储空间依然存在,它的值在该函数被再次调用前保持不变。静态变量在声明时前面需要加关键字static。③静态变量17<html><head><title>静态变量</title><?phpfunctioncounter(){static$count=0;$int_count=0;$count++;$int_count++;echo"静态变量"."$count"."<br>";echo"普通变量"."$int_count"."<br>";}?></head><body><?phpcounter();counter();counter();?></body></html><html>18变量类型转换自动转换变量赋值
变量类型转换自动转换19<body><?php$var=5+"10.7";echo$var."<br>";$var=5+"10.2e3";echo$var."<br>";$var=5+"abc1.0e3";echo$var."<br>";$var=5+"3.3+15";echo$var."<br>";$var=5.1+"3.3+15";echo$var."<br>";$var=5.1+"3.3e2bc";echo$var."<br>";?></body>返回<body>返回20强制转换转换目标变量=(强制类型)转换源变量intsettype(stringvar,stringtype);<?php$int_val=123;settype($int_val,"string");echo"$int_val";?>强制转换21变量类型转换-强制转换实例<?php$str_var="10.7";$int_var=5;$rel_var=(real)$str_var+(float)$int_var;//强制转换的第一种方法echo$rel_var."<br>";$rel_test=12.58;$int_return=0;$int_return=settype($rel_test,"integer");//强制转换的第二种方法echo$rel_test."<br>";echo"转换状态:".$int_return;?>变量类型转换-强制转换实例<?php22显式强制转换类型和settype()类型转换的区别:第一种方式只是在本次运算或操作中将变量的类型进行临时改变,实际上,对应存储空间中变量的数据类型并没有发生变化。而第二种方式则不然,在使用了settype()函数后,变量的数据类型会在存储的层面上发生改变,即变量类型转换成了新的数据类型。显式强制转换类型和settype()类型转换的区别:23常量自定义常量一般放在文档的首部常量名最好是用大写,PHP大小写敏感在.inc文件中定义常量,使用require、inlude调用系统定义常量_FILE_当前解析的脚本文件名_LINE_当前解析的脚本文件的当前行号PHP_VERSION当前PHP的版本号PHP_OS当前的操作系统名称E_ERROR标志最近不可恢复的错误常量自定义常量24<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>常量定义实例</title><?php define("SERVER",""); define("USERNAME","HTTPD"); define("PASSWORD","MyPass"); define("DESC_PROG","本程序采用PHP+Apache+MySQL技术");?></head><body><?php echoSERVER."<br>"; echoUSERNAME."<br>"; echoPASSWORD."<br>"; echoDESC_PROG."<br>";?></body></html>常量自定义常量返回<html>常量自定义常量返回25<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>系统定义常量演示</title></head><body><?phpecho"当前文件名:".__FILE__."<br>";echo"当前行号:".__LINE__."<br>";echo"当前操作系统:".PHP_OS."<br>";echo"当前PHP的版本:".PHP_VERSION."<br>";?></body></html>常量系统定义常量返回<html>常量系统定义常量返回2621.2.3.操作符算术操作符:+-*/%$a++++$a$a----$a字符串操作符:“.”
$str_val="Itistime"."togotobed.";比较运算符:“==”“>”“<”“!=”“>=”“<=”逻辑运算符:“and”“&&”“or”“||”“xor”“!”位操作符:“&”“|”“^”“~”“<<”“>>”21.2.3.操作符算术操作符:+-*/%$a+27其他运算符“$”运算符变量名前加“$”运算符。“&”运算符取得某个变量的存储地址。“?:”运算符条件运算符“->”引用一个类的方法或属性“=>”在数组定义中连接下标与值“@”运算符的作用是抑制错误报告,当PHP脚本中的函数调用出现错误时,错误信息会出现在用户的浏览器页面上,为了避免这一点,可以在PHP代码中使用“@”运算符来使得这些错误信息不发送到用户浏览器中。其他运算符2821.3.控制语句if,else,elseif,特殊判断switch跳转语句while、do…while和for循环break、continue21.3.控制语句if,else,elseif,29<?php$a=4;$b=3;if($a==4){ print"a=4"; $b=$a;}if(($b==$a)&&($a<>4)){ print"a<>4,butb=a";}?><?php$str_name="王刚";if($str_name=="王刚"){$log_enter_allow=true;echo"欢迎".$str_name."浏览该网页"."<br>";}else{$log_enter_allow=false;echo"请注册后再登入";}?>语句和控制结构-if<?php<?php语句和控制结构-if30<?phpif($int_score>=90){echo"学分等级为A"."<br>";}elseif(($int_score>=80)&&($int_score<90)){echo"学分等级为B"."<br>";}elseif(($int_score>=70)&&($int_score<80)){echo"学分等级为C"."<br>";}elseif(($int_score>=60)&&($int_score<70)){echo"学分等级为D"."<br>";}else{echo“学分等级为E”."<br>";}?>语句和控制结构-if(续)<?php语句和控制结构-if(续)31返回语句和控制结构-if(续-endif)<?phpif($int_score>=90): echo"学分等级为A"."<br>";elseif(($int_score>=80)&&($int_score<90)): echo"学分等级为B"."<br>";elseif(($int_score>=70)&&($int_score<80)): echo"学分等级为C"."<br>";elseif(($int_score>=60)&&($int_score<70)): echo"学分等级为D"."<br>";else: echo"学分等级为E"."<br>";endif?>返回语句和控制结构-if(续-endif)<?php32返回语句和控制结构-if(续-特殊判断)<?php$int_score=80;$str_checkout=$int_score>=80?"合格":"不合格";echo"你的考核成绩:".$str_checkout."<br>";?>返回语句和控制结构-if(续-特殊判断)<?php33返回13.语句和控制结构-switch$int_a=7;$int_b=4;$int_c=$int_a%$int_b;switch($int_c){ case0: echo$int_a."是4的倍数!"; break; case1: echo$int_a."除以4的余数是1!"; break; case2: echo$int_a."除以4的余数是2!"; break; case3: echo$int_a."除以4的余数是3!"; break; default: echo"不可能显示该内容";}返回13.语句和控制结构-switch$int_a=7;34返回13.语句和控制结构-while<?php$int_start=1;$int_end=15;while($int_start<$int_end){ $int_tmp=1; $str_line=""; while($int_tmp<=$int_start) { $str_line.=$int_tmp.""; $int_tmp++; } echo$str_line."<br>"; $int_start++;}?>返回13.语句和控制结构-while<?php35<?php$int_start=1;$int_end=15;do{ $int_tmp=1; $str_line=""; do { $str_line.=$int_tmp.""; $int_tmp++; } while($int_tmp<=$int_start); echo$str_line."<br>"; $int_start++;}while($int_start<$int_end);?>返回13.语句和控制结构-do…while<?php返回13.语句和控制结构-do…while36返回13.语句和控制结构-for<?phpfor($int_i=1;$int_i<=9;$int_i++){for($int_j=1;$int_j<=$int_i;$int_j++){$int_k=$int_i*$int_j;echo$int_j."x".$int_i."=";echo$int_k."";}echo"<br>";}?>返回13.语句和控制结构-for<?php37<?php$int_i=0;echo"10以内的奇数有:";while(1){ $int_j=$int_i%2; if($int_j==0) { $int_i++; continue; } if($int_i>10) break; echo"<br>"; echo$int_i++;}?>返回13.语句和控制结构-break、while<?php返回13.语句和控制结构-break、while3821.4数组:PHP中可以用字符串表示数组元素的下标
$my_friends=array(“Mike”,”Ban”,“Clare”);$my_friends=array(“best”=>“Mike”,”good”=>”Ban”,“Clare”);21.4数组:PHP中可以用字符串表示数组元素的下标$m39$employees=array(“Mike”=>array(“age”=>33,”salary”=>”\$3000”,“position”=>”manager”),“Ban”=>array(“age”=>24,”salary”=>”\$1200”,“position”=>”worker”));$employees=array(40functiondecelerate($num){if($this->speed>$num){ $this->speed-=$num;}else{ return0;}}}$vehicle=newVehicle;$vehicle->accelerate(45);$vehicle->accelerate(45);$vehicle->accelerate(45);$vehicle->accelerate(45);$vehicle->accelerate(45);?></body>21.5类<body><?phpclassVehicle{var$speed;functionaccelerate($num){if($this->speed+$num<150){ $this->speed+=$num; echo$this->speed; echo"<br>";}else{ $this->speed=150; echo$this->speed; echo"<br>";}}functiondecelerate($num)21.54121.6函数保留函数I/O函数数据函数数学函数时间函数数据库函数执行外部程序的函数:exec、system退出函数:exit自定义函数21.6函数保留函数42I/O函数⑴输出函数包括print()、printf()和echo。print()是最简单的输出函数,它直接将参数发送给浏览器;printf()用于格式输出echo是早期的PHP版本中用来做输出的,它的特殊之处在于不需要括号I/O函数⑴输出函数43PHP输出信息函数-PRINT<?phpprint"显示一个字符串";//不使用括号print'<br>';print("显示一个字符串");//使用括号print'<br>';//print可以在for循环中,echo则不可以for($i=1,$j=1;$i<4;$i++,print"<br>"){ $j+=$i+$j; echo"$i$j";}?>PHP输出信息函数-PRINT<?php442)文件操作函数3)文件引用函数Require作用是用指定的文件替代自身,成为程序的一部分。它通常放在程序的最前面,PHP程序在执行前,就会读入相应的文件,通常的格式为:require“目标文件”Include一般放在流程控制的处理区段中,区别:include语句在每次调用时都要重新计算一遍,将特定的文件包含在程序里;require语句只在它第一次出现时,就已经被相应文件所代替了,不会考虑在这以后该文件内容是否发生变化。4)调试函数2)文件操作函数454.PHP调用文件Include:每次重新计算<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>include引用文件</title></head><body><?php{include"sample-2003-1.php";}echo"<br>";echo"HelloWorld!";?></body></html>Require:仅载入一次<html><head><?phprequire“sample-2003-1.php”;//不考虑该文件以后的变化?><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>require引用文件</title></head><body><?phpecho"<br>";echo"HelloWorld!";?></body></html>4.PHP调用文件Include:每次重新计算<html>R46PHP函数-exec、system用于执行一个外部程序的函数该函数不显示输出,可以将输出放到一个数组中格式:
stringexec(stringcommand,string[array_name],int[return_var]);system(stringcommand);PHP函数-exec、system用于执行一个外部程序的函数47返回PHP函数-exec、system<body><?php$DispInfo=array("");$MyReturn=0;exec("mkdire:\mytest",$DispInfo,$MyReturn);exec("copyc:\csnews\php-teste:\mytest");exec("dire:\mytest",$DispInfo,$MyReturn);for($i=0;$i<50;$i++){ echo$DispInfo[$i]."<br>";}echo"返回值:".$MyReturn."<br>";?></body>返回PHP函数-exec、system<body>48返回PHP函数-exit退出当前的脚本文件格式:Exit;返回PHP函数-exit退出当前的脚本文件49自定义函数PHP简单函数样例函数返回多个值的实例函数传递参数实例(传值、传址)函数嵌套调用自定义函数PHP简单函数样例50返回14.函数-简单样例<?phpdefine("PI",3.14);functioncircle_area($diameter){ $area=PI*$diameter*$diameter/4; return$area;}?><?php $int_circle_diameter=10; echo"直径为".$int_circle_diameter."的圆面积是".circle_area($int_circle_diameter);?>返回14.函数-简单样例<?php51<title>函数返回多个值的方法</title><?phpdefine("PI",3.14);functioncircle_calc($diameter){ $radius=$diameter/2; $perimeter=PI*$diameter; $area=PI*$diameter*$diameter/4; returnarray($radius,$perimeter,$area);}?></head><body><?php$int_circle_diameter=10;list($first,$second,$third)=circle_calc($int_circle_diameter);echo"直径为".$int_circle_diameter."的圆半径是".$first."<br>";echo"直径为".$int_circle_diameter."的圆周长是".$second."<br>";echo"直径为".$int_circle_diameter."的圆面积是".$third."<br>";?></body></html>返回14.函数-返回多个值的实例<title>函数返回多个值的方法</title>返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分娩前评估规范与实施要点
- 社区环保实践活动方案
- 煤炭采购全流程管理
- 书法自我总结课件
- 社区游园活动策划方案
- 教育资源体系构建与应用
- 安全交通教育
- 毕业包装设计
- 教育助我成长
- 少儿陶艺教育体系构建
- 雇主雇佣保姆合同范本
- 设备主管转正述职报告
- (统编版2026新教材)三年级语文上册晨读必背知识
- 国企管理内部控制办法
- 教小朋友画画的上课流程
- 智能浆料配方设计-洞察与解读
- 安全生产月人人讲安全
- 2024-2025学年天津市滨海新区八年级下学期期末物理试卷(含详解)
- 2025年山东省卫生管理研究专业职称任职资格考试历年参考题库含答案详解(5套)
- 2025届上海市闵行区物理高二第二学期期末监测试题含解析
- 隧道清包工劳务合同范本
评论
0/150
提交评论