PHP期末总复习

本次复习主要参考《PHP Web应用开发案例教程》一书

1、PHP的基本语法
(1)PHP是一种创建动态交互性站点的、强有力的服务器端脚本语言,一个完整的PHP文件由HTML标记、PHP标记、PHP代码、注释、空格组成。空格(包括Tab制表符、换行符)在解释执行过程中会被PHP引擎忽略。
(2)一般PHP语言标记采用<?php …… ?>格式。
PHP支持八种原始类型,其中4种标量类型(整形,浮点型,布尔型,字符串),2种符合类型(数组,对象),2种特殊类型(资源,NULL)。
(3)PHP变量需要使用美元符号$开头,无论是声明变量还是调用变量都要带上美元符号。
(4)对于字符串型,有三种形式去定义:①单引号除了可以转义斜线之外, 其他转义符都不能执行,显示的是符号本身;②双引号则接受更多的转移符号,遇到$会先判断是不是变量,再输出;③定界符形式,开始标识符前面要有三个尖括号<<<,结束标识符必须单独另起一行,并且在该行的第一列。可给出以下例子:

<?php
	$exp=<<<Mydefine
	定界符<br>
	字符串定义<br>
	美元符号$<br>
Mydefine;
	echo $exp;
?>

运行效果如下:
在这里插入图片描述
(5)使用整型数据类型,可以采用十进制、八进制、十六进制形式进行赋值。要使用八进制,数字前要加‘0’,要使用十六进制,数字前面要加上‘0x’,表达式中计算的结果均以十进制的数字输出。
PHP不支持无符号整数,如果一个数或者运算结果超出整形范围,将会返回float。
(6)数组是一系列相关数据的集合,以某种特定方式进行排列,形成一个可操作的整体。数组中可以包含:标量数据、数组、对象、资源等。数组中每个数据成为一个元素,元素包括索引(键名)和值两部分。在PHP中,元素索引只能由数字或字符串组成。
(7)对象类型的变量由一组属性值和一组方法构成。
(8)资源是一种特殊变量类型,用于保存对外数据源的引用,如文件、数据库等。

<?php
$file=fopen("test.txt","w");
var_dump($file);	//输出resource(3) of type (stream)
?>

资源变量保存的是一个指针,而不是值。在使用资源时,系统会自动启动垃圾回收机制,释放不再使用的资源,避免内存消耗殆尽。
(9)数据类型转换
强制数据类型/显示转换:()或者settype()函数
隐式转换/自动转换:变量自身的类型也会改变
(10)传值赋值是将原变量的内容复制下来开辟一个新的内存空间来保存,而引用赋值相当于给变量的内容再取一个名字,两个变量指向同一个存储空间,一个变量的变化都会引起另一个变量的变化。
(11)局部变量、全局变量、静态变量
局部变量保存在内存的栈中,速度快;
全局变量需要用global关键字声明,需要在函数内部定义;
静态变量是一种特殊的局部变量,只存在于函数作用域内/只在栈中,需要用static关键字进行修饰。
(12)使用define()定义常量,常量不需要加$符号,使用constant()函数获取常量值,使用defined()函数判断常量是否定义。

<?php
	define(PI,"3.1415926");
	echo PI."<br>";
	echo pi."<br>";
	define(COUNT,"大小写不敏感",true);
	echo COUNT."<br>";
	echo cOunt."<br>";
	$name="count";
	echo constant($name)."<br>";
	echo(defined("PI"))."<br>";
?>

运行结果:
在这里插入图片描述
(13)运算符的优先级:
! > 算术运算符 > 关系运算符 > && > || > 赋值运算符>异或
PHP中将关系运算符称为比较运算符。
(14)只有一个字符串运算符——英文的句号’.’。
(15)错误控制运算符@,可以屏蔽错误信息,但不能解决错误。
2、流程控制语句——顺序、选择、循环
(1)选择语句

<?php
	$a = 2;
	$b = 3;
	if( $a>$b ){
		echo "\$a>\$b<br>";
	}elseif( $a == $b ){
		echo "\$a = \$b<br>";
	}else{
		echo "\$a<\$b<br>";
	}
?>
<?php
	switch(date("D")){
	case "Mon":
		echo "<br>今天周一";
		break;
	case "Tue":
		echo "<br>今天周二";
		break;
	case "Wed":
		echo "<br>今天周三";
		break;
	case "Thu":
		echo "<br>今天周四";
		break;
	case "Fri":
		echo "<br>今天周五";
		break;
	default:
		echo "<br>今天周末!";
		break;
	}
?>

(2)循环控制语句

<?php
	$i = 0;
	$str = "10以内的偶数:";
	while( $i<10 ){
		if( $i%2 == 0){
			$str .= $i." ";
		}
		$i++;
	}
	echo $str;
?>

(3)while和do…whileu循环语句
(4)for循环语句
(5)foreach循环,PHP4引进,只能用于数组。

foreach($var as $value){
	//将数组元素中的值赋给$value
}

foreach($var as $key => $value){
	//将数组元素的键赋给$key
}

3、PHP函数的应用
(1)函数一般有函数模、参数、函数体、返回值四部分组成。函数名具有唯一性,且不区分大小写。
(2)函数只有被调用时才会被执行,页面加载时不会立即执行。
(3)函数中每个参数都是一个表达式,定义时成为形参,调用时输入的实际值为实参。
(4)函数间参数传递的方式有三种:按值传递,按引用传递,默认参数。默认方式是按值传递,按引用传递时,要在形参前面加上&符号。
(5)对函数的引用,需要在函数名前加上&符号。整理区别于参数引用中的&只需要加在形参前面,而引用函数在定义和调用时都需要加上&符号。
(6)变量函数:变量名后面有圆括号,PHP将寻找与变量值同名的函数并尝试执行,找不到将会报错。
(7)unset()释放变量,对于全局变量,挡在函数内部销毁时,只会在该函数内起作用。
(8)include()和require()函数的区别在于前者引用的文件出错时系统只会抛出警告会继续向下执行,而后者则会停止运行,这是作为PHP文件的一部分被执行的。
4、字符串操作与正则表达式
(1)正则表达式是一种对字符串进行模式匹配和替换的规则。
(2)trim()用于去除字符串首尾空格和特殊字符;
ltrim()用于去除字符串左边的空格;
rtrim()用于去除字符串右边的空格。
(3)正则表达式
——元字符:具有特殊含义的符号;
——模式修正符:规定正则表达式该如何解释和应用
(4)Perl兼容正则表达式
使用preg_grep($string,$array)进行匹配
preg_match()返回匹配次数(1次)
preg_match()返回匹配次数(全部)
5、PHP数组
(1)数组有索引数组和关联数组,一个数组中只要有一个键名不是数字,则为关联数组。
(2)数组的输出方式
printf_r($array)
foreach(…)
each() list() while()
(3)explode()函数将字符串分割为数组元素,implode()将元素合并为字符串。
(4)count()统计数组元素,如果第二个参数为1,则表示递归计算数组个数,适用于多维数组。
(5)sort()用于升序排序,rsort()用于降序排序,这是对于数值数组来说的。
asort()根据关联数组的值升序,ksort()根据关联数组的键升序。
(6)预定义数组
例如$_GET[],$_POST[],$_COOKIE[],$FILES[],$_SESSION[]等。
(7)数组由一系列有序的变量组成,每个变量都有编号,形成一个可操作的整体。
6、表单

<form action="" method="post" enctype="multipart\form-data">
<input type="text" value="可以在文本框内显示的文字"/>
<br>
<input type="checkbox" name='habit' value="健身" />健身
<input type="checkbox" name='habit' value="跑步" />跑步
<input type="checkbox" name='habit' value="跳舞" />跑步
<br>
<input type="radio" name='sex' value='男' checked/><input type="radio" name='sex' value='女'/><br>
<input type="file" name="wenjian" id="wenjian" />
<br>
<!-- <input type="image" src="a.jpg" name='road' id='road' /> -->
<br>
<input type="password" value="123456"/>
<br>
<input type="button" name="anniu" id="anniu" value='exit' />
<br>
<input type="submit" name="tj" id="tj" />
<br>
<input type="reset" name="cz" id="cz" value="重置" />
<br>
<select name="select" size="2" multiple="multiple">
	<option value='v1'> 唱歌 </option>
	<option value='v2'> 跳舞 </option>
	<option value='v3'> 写作 </option>
</select>
<br>
<textarea name="t1" rows="3" cols="10" wrap="hard">硬回车输出自动换行</textarea>
<textarea name="t2" rows="3" cols="10" wrap="soft">软回车输出不换行</textarea>
</form>

action用于指定处理表单页面的URL程序,具有数据处理能力的web程序。
图像域具有按钮的功能(type=“image”)。
7、面向对象
(1)类是对一类事物的描述,它定义了事物的抽象特点。类的定义包含了数据形式以及数据操作。
对象是类的示例,类是用于生成对象的代码模块。

<?php
	class SimpleClass{
		……
		function __construct(){……}
		function __destruct(){……}//一般不用,有垃圾回收机制
	}
	$S=new SimpleClass();
?>

(2)PHP是单继承的。

class extendClass extends SimpleClass{……}

(3)重写/覆盖
(4)使用静态成员是要加上self::。
(5)接口解决单继承的问题。类要实现接口中定义的所有方法,除非该类是抽象类。

interface Power{……}
class checkout implements interface1,interface2{
	function interface1(){……}
	function interface2(){……}
}

(6)魔术方法在类中使用时需要先定义再使用。
8、COOKIE
(1)用于记录访客的某些信息
在网页间直接传递变量
将所有查看过的Internet页存储再cookie临时文件夹中,提高浏览器速度
(2)创建:setcookie(“cookie_name”,$value,time()+60);
(3)删除:setcookie(“cookie_name”,"",time()-1);或者手动删除。
注意前者第二个参数必须为空值
9、文件系统
(1)上传文件的时候,表单必须具备的属性:method=“post” enctype=“multipart\form-data”
查看文件上传情况可以访问预定义数组$_FILES[]。
10、MySQL数据库
操作与sql数据库类似,在创建数据表的时候,需要注意使用utf8编码,可以在最后加上defalt charaster set utf8;
11、PHP操纵数据库

<body>
<?php
	$conn=mysqli_connect('localhost','root','123456','test') or die('数据库连接失败'.mysqli_connect_error());	//最后一项参数可选,为数据库名
	//mysqli_select_db($conn.'test');
	$string="select * from user";
	$result=mysqli_query($conn,$string);
	while($row=mysqli_fetch_row($result)){
		for($i=0;$i<count($row);++$i){
			printf("%s ",$row[$i]);
		}
		echo '<br>';
	}
	mysqli_free_result($result);
	mysqli_close($conn);
?>
</body>

12、PHPThink和MVC
MVC——Model,View,Controller
CURD操作:Create,Update,Read,Delete

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值