php课程总结

时间:2019-05-11 23:34:00下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《php课程总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《php课程总结》。

第一篇:php课程总结

一、时间和地点:

每周四上午在F311上课。

二、课程内容:

通过这段时间的学习,我对PHP中的MySQL数据库有了一定的理解。由于以前没有基础,在老师讲课的过程开始有点费尽,尽量记了一些。首先学习了一些定义:MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

数据(Data)是对客观事物的符号表示,如图形符号、数字、字母等,数据是数据库中存储的基本对象。在日常生活中,人们直接用语言来描述事物;在计算机中,为了存储和处理这些事物,就要将事物的特征抽象出来组成一个记录来描述。之后,进行数据的编写,知道了数据库的发展史:人工管理阶段(人力手工整理存储数据)、文件系统阶段(使用磁盘文件来存储数据)、数据库系统阶段、关系型数据库、高级数据库阶段、“关系-对象”型数据库。再然后学习了数据库的类型:

(1)纯文本数据库: 纯文本数据库是只用空格符、制表符和换行符来分割信息的文本文件。适用于小型应用,对于大中型应用来说它存在诸多限制:

 只能顺序访问,不能进行随机访问。 查找数据和数据关系或多用户同时访问进行写操作时非常困难。

(2)关系数据库:

由于纯文本数据库存在诸多局限,所以人们开始研究数据模型,设计各种类型的使用方便的数据库。在数据库的发展史上,最具影响的数据库模型有:层次模型、网状模型和关系模型。其中,关系模型是目前应用最广泛和最有发展前途的一种数据模型,其数据结构简单,当前主流的数据库系统几乎都采用关系模型。数据库管理系统:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

MySQl特征:性能快捷、优化SQL语言、容易使用、多用户支持、可移植性和开放源代码、遵循国际标准和国际化支持、为多种编程语言提供API。

 mysql命令:mysql命令

mysql-h host_name-u user_name –ppassword  h:当连接MySQL服务器不在同台主机时,填写主机名或IP地址  u:登录MySQL的用户名  p:登录MySQL的密码

 注意:密码如果写在命令行的时候一定不能有空格。如果使用的系统为linux并且登陆用户名字与MySQL的用户名相同即可不用输入用户名密码,linux默认是以root登陆,windows默认用户是ODBC mysql程序常用命令:选定默认数据库:use dbname;显示所有数据库:show databases;显示默认数据库中所有表:show tables;放弃正在输入的命令:c;显示命令清单:h;退出mysql程序:q;查看MySQL服务器状态信息:s 接着我们讲了数据库基础知识,在此课中我们了解了数据库: 数据库由一批数据构成的有序集合,这些数据被分门别类地存放在一些结构化的数

据表(table)里,而数据表之间又往往存在交叉引用的关系,这种关系使数据库又被称为关系型数据库 档案柜=数据库 抽屉=表 文件=记录

一、数据库的组成以及功能

1、SQL语法组成:DML(Data Manipulation Language数据操作语言)

——查询、插入、删除和修改数据库中的数据; ——SELECT、INSERT、UPDATE、DELETE等;

DCL(Data Control Language数据控制语言)

——用来控制存取许可、存取权限等; ——GRANT、REVOKE 等;

DDL(Data Definition Language数据定义语言)——用来建立数据库、数据库对象和定义其列

——CREATE TABLE、DROP TABLE、ALTER TABLE 等 功能函数

——日期函数、数学函数、字符函数、系统函数等

2、MysQl数据库增删改查:

数据库的操作:增、删、改、查

增 create database name、删 drop database name、查 show databases 改 没有修改数据库的语句、可以修改数据库的名字

Myisan 直接进入mysql data文件夹进行修改、Innodb 不可以改名,只能重建 几个重要的数据库:

Informatio_schema 存储数据库的各种信息用户信息,列表信息,字符集信息等等„.Mysql用户权限信息

Test 仅供用户使用的测试数据库,可以随意使用 Cluster 服务器数据集,不可以删除

Phpmyadmin mysql图形管理软件的一种web

3、数据表的操作

Use 数据库名; 增 create table 表名(字段名 字段类型[约束条件],字段名 字段类型[约束条件]。。)

删 drop table 表名 改

查 show tables

4、数据类型种类:

 数值型

分为整型和浮点型

 整型:可以由十进制和十六进制表示

整数由数字序列组成,如:1,100。

由十六进制表示方法:0x且后面加1—9和A—F 的任意数字或字母,并且0x中的X不能大写。

 浮点型:

浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。

数值列的完整性约束

(1)AUTO_INCREMENT 自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1 的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOT NULL,并定义为PRIMARY KEY 或者定义为UNIQUE键。

举例:

create table t(id int auto_increment not null primary key);(2)UNSIGNED 无符号,此属性禁用负值,将数值的取值范围从零开始。举例:

create table t(num tinyint , num2 tinyint unsigned);(3)NULL和NOT NULL 默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。(4)DEFAULT 可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。(5)ZEROFILL 前导零填充数值类型值以达到列的显示宽度。

举例:

create table test2(num1 int default 1,num2 int zerofill);CHAR和VARCHAR类型:

CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:

CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。

VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。

5、创建数据库:

建立数据库操作:

语法:create database 数据库名

叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。例:建立一个student库。

mysql> create database student;创建表:建立表操作:

语法:create table 表名( 列名1 列类型 [<列的完整性约束>],  列名2 列类型 [<列的完整性约束>], ......);叙 述:在当前数据库下新创建一个数据表。

列类型:表示该列的数据类型。例:

建立一个表school,其由两列组成,第一列属性为非空,并做为主键,并自增

 create table school( school_id int(10)not null auto_increment primary key,  school_name varchar(20)

);

6、主键与外键:数据表之间的关联/引用关系是依靠具体的主键(primary key)和外键(foreign key)建立起来的。

(1)主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来。

主键必须是唯一的

主键应该是紧凑的,因此整数类型比较适合

主键

create table student(sid int not null auto_increment, name varchar(20)not null, primary key(sid));(2)外键:引用另外一个数据表的某条记录。

外键列类型尽可能与主键列类型保持一致 外键列应该加上NOT NULL 外键(自动检查外键是否匹配,仅适用InnoDB)

create table score(cid int not null auto_increment primary key, score int, sid int, foreign key(sid)references student(sid));

7、删除数据库或表操作

 删除表操作

语法:drop table [if exists] tab_name [,tab_name]...叙述:从数据库中删除给定的表。如果给出if exists 子句,则删除不存在的表不会出错。

 删除数据库操作

语法:drop database [if exists] db_name 叙述:删除给定的数据库。在删除一个数据库后,它就永远没有了,因此要特别小心。如果给出if exists 子句,则删除不存在的数据库不会出错。

更改表结构操作:

语法:alter table 表名 action; 说明:action 可以是如下语句:

 add 列名 建表语句 [first | after 列名] 可以为表添加一列,如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列

 add primary key(列名)为表添加一个主键,如果主键已经存在,则出现错误

 add foreign key(列名)references 表名(列名)为表添加一个外键

 alter 列名 set default 默认值

可以更改指定列默认值

举例1:

向people表中添加字段address2,类型为varchar,最大长度为100  alter table people add address2 varchar(100);

8、插入记录操作

 叙述:

如果表名后面没写字段名,则默认是向所有的字段添加值,另外字符串值应该用‘ ’或“ ”引号括起来

 举例1:向people表中添加一条记录:

insert into people(name,age)

values(“zhangsan”,20);多表查询—分类

 连接查询

 同时涉及多个表的查询称为连接查询  用来连接两个表的条件称为连接条件

 内连接(INNER JOIN) 外连接

——左外联结(LEFT JOIN)——右外联结(RIGHT JOIN)

二、算数运算符

(1)用字符串表示的数字在任何可能便于计算的地方都被自动地转换为数字。当执行转换时,MySQL遵循两个基本规则:

 如果第一位是数字的字符串被用于一个算数运算中,那么它被转换为这个数字的值。 如果一个包含字符和数字混合的字符串不能被正确的转换为数字,那么它被转换成0。

(2)比较运算符

 比较运算符允许我们对表达式的左边和右边进行比较。一个比较运算符的结果总是1(真),0(假),或是为NULL(不能确定)。 比较运算符可以用于比较数字和字符串。数字作为浮点值比较,而字符串以不区分大小写的方式进行比较(除非使用特殊的BINARY二进制关键字)

在第二章中我们学习到了数据库的连接。

1、mysql 连接:

七剑下天山

// 第一贱:连接数据库

• mysql_connect — 打开一个到 MySQL 服务器的连接

• mysql_pconnect — 打开一个到 MySQL 服务器的持久连接

• //resource mysql_connect([ string $server [, string $username [, string

$password [, bool $new_link [, int $client_flags ]]]]])(在php手册中有 • //mysql 连接:

• // mysql_connect 非持久连接,效率较低,对资源消耗小 • // mysql_pconnect 持久连接,效率高,消耗大量的资源 • $link=mysql_connect('localhost:3306','root','root');• var_dump($link);// 第二贱:判断连接是否成功

• //第二贱:判断连接是否成功//mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编码

• //mysql_error — 返回上一个 MySQL 操作产生的文本错误信息

• //echo mysql_errno();正确返回0,错误返回一个正整数,输出最近一次的mysql错误。

// 第三贱:设置字符集

• bool mysql_set_charset(string $charset [, resource $link_identifier ])• //mysql_set_charset — Sets the client character set • //bool mysql_set_charset(string $charset [, resource $link_identifier ])• mysql_set_charset('utf8');// 第四贱:选择数据库

• //mysql_select_db — 选择 MySQL 数据库 • mysql_select_db('company11');• mysql_select_db — 选择 MySQL 数据库 • 说明

• bool mysql_select_db(string $database_name [, resource $ link_identifier ])• 成功时返回 TRUE,或者在失败时返回 FALSE.• mysql_select_db()设定与指定的连接标识符所关联的服务器上的当前激活数据库。如果没有指定连接标识符,则使用上一个打开的连接。如果没有打开的连接,本函数将无参数调用 mysql_connect()来尝试打开一个并使用之。

// 第五贱:准备并且发送sql语句

• //$sql='select * from biao';• //mysql_query($sql)//mysql_query — 发送一条 MySQL 查询

//resource mysql_query(string $query [, resource $link_identifier ])// 第六贱: 判断执行结果,或者遍历结果集

• //增删改的判断

• $result=mysql_query($sql);(放入第五贱)• if($result && mysql_affected_rows()){ •

echo '执行成功';• }else{ •

echo '执行失败,或者不存在数据';• } • $sql=“insert into zhiyuan(name,sex,bumen)values('zhou',0,2)”;• $sql=“update zhiyuan set bumen=3 where name='小王'”;• $sql=“insert into zhiyuan(name,sex,bumen)values('小王',0,2)”;// 第七贱:万贱归宗 */

之后,学习了面向对象。

1、面对对象技术的基本观点如下:

(1)客观世界由对象组成。

(2)具有相同数据(属性)和操作(方法)的对象可归纳成类。

(3)类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性(4)对象之间的联系通过消息传递(可理解为方法调用)来维系。

假设m1是类Manager的一个实例(或对象),当外界要求把这个对象所 代表的那位经理的级别改变为2时,就应以下面的方式向这个对象发出一条消息: ml.ChangeLevel(2)消息传递

PHP的WEB技术面向对象是仿造现实对象建立的,他们也有状态和行为。软件对象在一个 或多个变量中维护它的状态。变量是一个由标识符命名的数据项。对象用方法实现它的行为。方法是与一个对象相关联的函数(子过程)。

• 对象有二个性质:状态(state)和行为(behavior)。• 对象是一个封装数据属性和操作行为的实体.2、面向对象

将相关的变量和方法封装进一个简洁的软件组合是一种简单而强大的思想,它给软件开发人员提供了两个主要的好处:

模块化:一个对象的源代码可以独立于其他对象的源代码进行编写和维护。另外,对象很容易地在系统中传递。你可以将你的自行车对象交给其他人,而它仍然会正常工作。(重构、代码复用)

隐藏信息:对象有一个公共接口,其他对象可以使用这个接口与它通信。对象可以维护私有的信息和方法,可以在任何时候改变这些信息和方法,而不影响依赖于它的其他对象。你不需要理解你自行车使用的变速齿轮机制就能够使用它。即是:封装

3、类

类是一组具有相同数据结构和相同操作对象的集合。

在现实世界中,常常有相同类型的许多对象。例如,你的自行车只是世界上的许多自行车之一。用面向对象的术语来说,你的自行车对象是自行车类的一个实例。自行车有一些共有的状态(当前的变速齿轮、当前的步调、两个轮子)和行为(改变变速齿轮、刹车)。但是,每辆自行车状态独立于其他自行车状态,也就说每辆自行车的状态可以互不相同。

• function jia($no1,$no2){ •

return $no1+$no2;• } • function jian($no1,$no2){ •

return $no1-$no2;• } • function cheng($no1,$no2){ •

return $no1*$no2;• } • function chu($no1,$no2){ •

return $no1/$no2;• } • function max(){

• echo '我是最大值';• }

4、类的成员-字段(1)、声明字段 name;?>(2)使用字段

• 与变量不同,使用字段要使用->操作符,而不是美元符号

– $employee=new Staff();– echo $employee->name;• 当在定义字段的类中引用字段时要使用$this关键字。$this表示当前类

5、、构造函数

构造函数是类中的一个特殊函数,当使用 new 操作符创建一个类的实例时,构造函数将会自动调用。

Php5中以__construct()作为构造函数。而php4中是以将和类名相同的函数作为构造函数。为了兼容php5先寻找__construct(),如果找不到再寻找以类名命名的构造函数

如果一个类没有构造函数,则调用基类的构造函数 Class Staff { function __construct()//两个下划线 { echo “调用了构造函数”;} function Staff(){ echo “调用了构造函数2”;} } $employee=new Staff();• //构造方法 函数

• //特点,就是在new 的时候也就是调用这个壳的时候就进行了调用的方法

• //写法:php4中只认识一种 类名和函数名相同的话,那个函数就是使构造方法 • //php5中 类名和函数名相同/__construct()都是构造方法

• //注意:构造方法在类中只能有一个 不要写多个 使用PHP4的或者PHP5的两个相同构造方法会报重载错误

• //但是如果一个PHP4的一个PHP5的构造方法就不会报错,但是逻辑有问题

• //构造方法的参数传值,是在调用类的时候()放的就是为构造方法准备的参数 //析构方法 函数 __destruct()• //特点,析构方法是在调用完之后,自动执行 在接收类调用的变量改值的时候/或者页面结束 自动启动

• //声明关键字 [private protected public var ]

6、析构函数

(1)析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。脚本执行结束时,php会撤销内存中的所有对象,因此如果实例化时创建的信息都会保留到内存中,就不需要显式的声明析构函数。但是如果创建了不那么容易丢失的数据时(例如连接数据库)就应当定制析构函数进行销毁数据。Class Staff { function __construct(){ echo “调用了构造函数”;} function __destruct(){ echo “调用了析构函数,需要释放和销毁的“;} } $employee=new Staff();(2)类的成员-属性_set()__set()//两个下划线

$this->$propname=$propvalue;

print ”ok
“;} } $model=new Test();$model->age=25;$model->title=”English“;echo ”


“;print ”age: “.$model->age.”
“;echo ”
“;print ”title: “.$model->title.”
“;?> 可用来验证某个属性是否存在或增加新的属性

7、控制对类的成员访问

(1)public :在任何位置都可以读取和修改这个成员变量或者调用这个方法。这个修饰符在外部代码使用,由给定类中的代码使用,或者在扩展给定类的功能的类中使用。

(2)private : 只有这个类中的代码才能读取和修改私有变量或者调用私有成员函数。其他代码、类或者扩展这个类的功能类(子类)不能使用私有条目。

(3)protected : 外部代码与给定类不相关的其他类不能读取或者修改使用了关键字protected的成员变量,也不能调用受保护的成员函数。(4)abstract 定义抽象类

(5)final 子类方法不允许覆盖父类方法 先了解,下一章重点阐述

8、静态类成员

当需要一些所有类对象共享的字段和方法时就需要创建一些静态的字段和方法。Class Staff { public static $name=”静态字段“;static function show(){

echo self::$name,”
“;} } echo Staff::$name,”
“;Staff::show();

9、常量

常量(const)即不会在类中改变的值,对于该类的任何实例化的对象来说 常量值在这些对象的整个生命周期中都保持不变 Class Staff { const CITY=“北京”;} echo Staff::CITY;

之后,学习了PHP正则表达式

1、正则表达式简介

正则表达式是用于描述字符排列模式一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。到目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。

在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述。

在程序语言中,通常将模式表达式(即正则表达式)包含在两个反斜线“/”之间,如“/apple/”。用户只要把需要匹配的模式内容放入定界之间即可。

如果使用一个没有特殊字符的正则表达式,相当于纯文本搜索,使用strstr()函数也可达到同样的效果。

2、^ 和 $ ”^The“: 开头一定要有”The“字符串;”of despair$“: 结尾一定要有”of despair“ 的字符串;那么, ”^abc$“: 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配

”notice“: 匹配包含notice的字符串 你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式)可以出现在被检验字符串的任何地方,你没有把他锁定到两边(开始或结束)

3、'*', '+',和 '?', * 表示出现0次或1次或多次 相当于{0,}, + 表示出现1次或多次 相当于{1,}, ? 表示出现0次或1次 相当于{0,1}, 这里是一些例子: ”ab*“: 和ab{0,}同义,匹配以a开头,后面可以接0个或者N个b组成的字符串(”a“, ”ab“, ”abbb“, 等);”ab+“: 和ab{1,}同义,同上条一样,但最少要有一个b存在(”ab“, ”abbb“, 等.);”ab?“:和ab{0,1}同义,可以没有或者只有一个b;”a?b+$“: 匹配以一个或者0个a再加上一个以上的b结尾的字符串.要点, '*', '+',和 '?'只管它前面那个字符.4、[ ] 中括号括住的内容只匹配一个单一的字符

”[ab]“: 匹配单个的 a 或者 b(和 ”a|b“ 一样);”[a-d]“: 匹配'a' 到'd'的单个字符(和”a|b|c|d“ 还有 ”[abcd]“效果一样);一般我们都用[a-zA-Z]来指定字符为一个大小写英文 ”^[a-zA-Z]“: 匹配以大小写字母开头的字符串 ”[0-9]%“: 匹配含有 形如 x% 的字符串

”,[a-zA-Z0-9]$“: 匹配以逗号再加一个数字或字母结尾的字符串

5、正则表达式的语法规则

正则表达式是主要由:  原子(普通字符,如英文字符) 元字符(有特殊功用的字符) 以及模式修正字符组成。

一个正则表达式中至少包含一个原子。

6、PHP中的正则表达式函数

在PHP中有两套正则表达式函数库。

 一套是由PCRE(Perl Compatible Regular Expression)库提供的。PCRE库使用和perl相同的语法规则实现了正则表达式的模式匹配,其使用以“preg_”为前缀命名的函数。

 另一套是由POSIX(Portable Operation System interface)扩展库提供的。POSIX扩展的正则表达式由POSIX 1003.2定义,一般使用以“ereg_”为前缀命名的函数。

 两套函数库的功能相似,执行效率稍有不同。一般而言,实现相同的功能,使用PCRE库的效率略占优势。

7、、正则表达式的拆分

1split()和spliti()函数原型:

 array split(string $pattern,string $string[,int $limit])本函数返回一个字符串数组,每个单元为$string经正则表达式$pattern作为边界分割出的子串。如果设定了$limit,则返回的数组最多包含$limit个单元。而其中最后一个单元包含了$string中剩余的所有部分。Spliti是split的忽略大小版本。

之后,学习了文件系统处理。

open()打开文件或者URL $file=fopen('1.txt','r');//只读模式打开 //r 只能读取不能写入

//r+ 增强的读写模式 表示以只读模式打开,但是仍然可以进行部分的写入操作 //w 写模式 打开文件的时候,原有内容会被清空 如果文件不存在就新建一个文件,再打开

//w+ 增强的读写模式

//a 追加模式(写)不会清空原有文件而是在源文件的基础上进行累加 不存在也可以新建

//a+ 增强的追加模式(读写)/x异或模式 文件存在就报错,不存在就创建 //x+增强的异或模式 //b 打开二进制文件

1、文件的打开

2、文件的删除

//rename('1.txt','1.exe');/ /删除

rmdir('C')//删除空目录 ?>

3、什么是文件系统

就是对系统或者服务器中的文件进行操作,增删改查,文件的上传和下载

4、文件系统能做什么?

a)文件缓存的应用 b)配置文件的应用

c)FTP站点主要是FTP下载站 d)站点页面的静态化 e)文件的上传和下载。

5、文件下载:查找 header

header('content-type:image/gif');//告诉浏览器你的文件描述

header('Content-Disposition: attachment;filename=”baidu.gif"');//告诉浏览器文件的大小

header('content-length'.filesize('baidu.gif'));//显示内容

readfile('baidu.gif');?>

三、个人收获

学习PHP的过程做一下概括:

(1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度

(2)理解动态语言的概念,运做机制,熟悉PHP语法

(3)学习如何将PHP与HTML结合起来完成简单动态页面

(4)接触MYSQL,开始设计数据库程序

(5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板

(6)完成一个功能齐全的动态站点

通过这段时间的学习,自己受益匪浅,知道了很多关于PHP的东西,学会了很多内容。在这堂课的学习过程中我认真听讲,上机认真练习,遇到难题,自己思考与探索,不断地寻求进步,请教老师和同学,虽然上半年没有学习这门课程,不过老师讲课非常仔细,然后同学们一步步自己跟着老师做,还是能跟得上,等着以后自己做毕业设计也有一定的帮助。

第二篇:PHP课程总结

PHP课程总结

这个学期开设的PHP课程是由聂老师上的,老师很详细的跟我们介绍PHP的语法,然后用实例跟我们讲解,每节课老师都尽心尽责,可是无奈班上的人听的还是寥寥无几,真正掌握的可能也只有雷sir和老胡,不知道是什么原因,但我始终觉得学习是自己的事情,如果不听,那可能是真的有自己的想法,就像您说的,能救咱就救救不了咱们也没有办法!

让我们掌握知识最多的时候应该是做网页的时候,在写网页代码的时候,才是我们真正将实际只是运用在实践中的时候,虽然网页制作的知识是我们上个学期学的知识,但是,真正的运用和熟悉起来却是这个时候,同样,老师教了很多东西给我们,可是我们却并没有将他们运用起来,或许说,不知道该在哪里运用起来,我们平常的实践非常的有限,没有建站的机会,更没有建站的经历,所以我们基本上学了就忘记了,没有实践,学了就忘,慢慢的就进入了恶性循环,就觉得学了也不知道该干嘛,所以慢慢自己开始懈怠。慢慢的也就觉得没有什么意思了。

到后半程的课程老师也觉得没意思了,然后开始让我们自由活动,只要不打游戏,就行了,其实这也是好事,都是成年人了,都知道对自己负责,没有了听课的任务后,也好把时间更好的用在自己的事情上,让自己更高效的做自己的事情由何尝不可呢。在后半段的课程我基本上就在做自己的事情了,对PHP也没有花太多的精力。硬要说总结的话,我只能说,学习PHP首先要熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度;然后理解动态语言的概念,运做机制,熟悉PHP语法;学习如何将PHP与HTML结合起来完成简单动态页面;再接触MYSQL,开始设计数据库程序;不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板;最后完成一个功能齐全的动态站点。

对于我们这样的PHP新手学习PHP基础知识时只要大致了解了就行,不要彻底的弄明白PHP基础知识。那要到什么时候去深究PHP基础知识呢?等我们入门后。也就是我们会使用PHP开发一个完整的网站后。你就会发现前面的PHP基础知识哪些是在我们的项目中非常重要的,哪些又不是那么经常用的。这个时候你多完成几个完整的项目,这时你对PHP基础知识的了解会更加清晰。

第三篇:《PHP应用程序技术》课程教学大纲

四川水利职业技术学院信息工程系

课程教学大纲

《PHP应用程序技术》教学大纲

一、课程目的

通过本课程的学习,课堂上先结合案例讲解PHP的基本语法等知识,再通过上机实践和课后练习,进行实际案例的开发。使学生能够更加全面地理解PHP语言的语法结构和运行原理,并能熟练地运用PHP和MySQL等知识进行项目开发。

二、课程性质和任务

本课程属于计算机软件开发专业的一门计算机编程语言基础课程,主要学习PHP程序设计语言的知识和应用,具体包括PHP概述、HTML基础、PHP语法基础、流程控制结构、PHP数组、PHP网站开发、MySQL数据库技术和PHP、MySQL数据库编程技术、面向对象技术、PHP安全与加密技术和B2C电子商务网站开发等。

三、教学要求

通过本课程学习,力求让学生掌握PHP编程方法,同时由于PHP语言可运行在跨平台操作系统上,在当前网络开发应用中非常广泛,是学生进行网站建设、Web应用开发非常重要的工具。

四、教学内容和课时安排

第1章 PHP开发环境搭建(10学时)1.PHP功能简介 2.程序运行环境的搭建 3.安装Apache与PHP 4.Apache的启动与关闭、Apache的配置文件 5.PHP的配置文件

6.几种综合网络服务器系统的 7.几种开发工具简介

第2章 PHP基础语法(12学时)1.语言构成与工作原理

2.常量与变量 3.运算符和关键字 4.流程控制语法 5.表达式 6.特殊的全局变量 7.文件包含 四川水利职业技术学院信息工程系

课程教学大纲

8.PHP的数据类型 9.数据类型间的转换 10.函数的定义与使用 11.PHP常用函数第

3章 PHP中类的应用(10学时)1.PHP中面向对象程序设计的 应用 2.定义属性和方法 3.类的引用、扩展与继承 4.类的使用 5.接口与抽象类

第4章 文件系统与文本数据(8学时)1.PHP中的目录操作 2.PHP中的文件操作 3.文件的上传与下载 4.字符类型的特殊性 5.字符的显示与格式化 6.常见字符串的操作 7.正则表达式 8.字符操作的注意事项

第5章 数组操作与数据结构(10学时)1.一维数组与多维数组 2.常用的数组操作 3.数组索引与键名的操作 4.数组的排序

第6章 错误与异常(8学时)1.PHP中常见错误类型 2.PHP程序调试策略 3.使用PHPEclipse进行PHP 4.错误的处理 5.异常处理的原理 6.扩展的异常处理类 四川水利职业技术学院信息工程系

课程教学大纲

第7章 PHP与表单(12学时)1.HTML表单简介 2.表单数据的接收

3.常用表单数据的验证方法 4.URL编码解码函数 5.JavaScript程序设计基础 6.PHP动态生成JavaScript 7.JavaScript中调用PHP程序 8.JavaScript和PHP综合实例

第8章 PHP与MySQL数据库编程技术 1.MySQL数据库安装与配置 2.如何创建一个数据库与表 3.数据的操作

4.使用PHP操作MySQL数据库 5.使用PHP获取MySQL数据库的信息 第9章 B2C电子商务网站开发实训 1.需求分析 2.系统设计 3.数据库设计 4.系统实现 5.网站后台开发 6.网站前台开发 7.会员中心模块开发

五、考核方式

本课程考核采用综合考核方式,即课程的考试成绩由平时成绩、实验成绩和期末的理论考核成绩组成。其中平时成绩强调平时的出勤、课堂纪律、课堂表现和作业,占总成绩的10%;设计、实验成绩占总成绩的30%;期末的理论考核采取开卷方式,占总成绩的60%。

六、参考教材

《PHP程序设计案例教程》 陈建国编著 机械工业出版社 《PHP从入门到精通》 明日科技编著 清华大学出版社

七、其它(说明)四川水利职业技术学院信息工程系

课程教学大纲

教学大纲仅供老师作为授课安排的参考,具体情况应由老师根据学校条件、学生状况而定。

第四篇:PHP基础总结

1、在HTML嵌入PHP脚本有三种办法:

<scriptlanguage=“php”>

//嵌入方式一

echo(“test”);

</script>

<?

//嵌入方式二

echo“<br>test2”;

?>

<?php

//嵌入方式三

echo“<br>test3”;

?>

还有一种嵌入方式,即使用和Asp相同的标记<%%>,但要修改PHP.ini 相关配置,不推荐使用。

2、PHP注释分单行和多行注释,和java注释方式相同。

<?

//这里是单行注释

echo“test”;

/*

这里是多行注释!可以写很多行注释内容

*/

?>

注意不要有嵌套注释,如/*aaaa/*asdfa*/asdfasdfas*/,这样的注释会出现问题。

3、PHP主要的数据类型有5种,integer,double,string,array,object。

4、函数内调用函数外部变量,需要先用global进行声明,否则无法访问,这是PHP与其他程序语言的一个区别。事例代码:

<?

$a=1;

functiontest(){

echo$a;

}

test();//这里将不能输出结果“1”。

functiontest2(){

global$a;

echo$a;

}

test2();//这样可以输出结果“1”。

?>

注意:PHP可以在函数内部声明静态变量。用途同C语言中。

5、变量的变量,变量的函数

<?

//变量的变量

$a=“hello”;

$$a=“world”;

echo“$a$hello”;//将输出“helloworld”

echo“$a${$a}”;//同样将输出“helloworld”

?>

<?

//变量的函数

functionfunc_1(){

print(“test”);

}

functionfun($callback){

$callback();

}

fun(“func_1”);//这样将输出“test”

?>

6、PHP同时支持标量数组和关联数组,可以使用list()和array()来创建数组,数组下标从0开始。如:

<?

$a[0]=“abc”;

$a[1]=“def”;

$b[“foo”]=13;

$a[]=“hello”;//$a[2]=“hello”

$a[]=“world”;//$a[3]=“world”

$name[]=“jill”;//$name[0]=“jill”

$name[]=“jack”;//$name[1]=“jack”

?>

7、关联参数传递(&的使用),两种方法。例:

<?

//方法一:

functionfoo(&$bar){

$bar.=“andsomethingextra”;

}

$str=“ThisisaString,”;

foo($str);

echo$str;//output:ThisisaString,andsomethingextra

echo“<br>”;

//方法二:

functionfoo1($bar){

$bar.=“andsomethingextra”;

}

$str=“ThisisaString,”;

foo1($str);

echo$str;//output:ThisisaString,echo“<br>”;

foo1(&$str);

echo$str;//output:ThisisaString,andsomethingextra

?>

8、函数默认值。PHP中函数支持设定默认值,与C++风格相同。

<?

functionmakecoffee($type=“coffee”){

echo“makingacupof$type.n”;

}

echomakecoffee();//“makingacupofcoffee”

echomakecoffee(“espresso”);//“makingacupofespresso”

/*

注意:当使用参数默认值时所有有默认值的参数应该在无默认值的参数的后边定义。否则,程序将不会按照所想的工作。

*/

functiontest($type=“test”,$ff){//错误示例

return$type.$ff;

}

9、PHP的几个特殊符号意义。

$变量

&变量的地址(加在变量前)

@不显示错误信息(加在变量前)

->类的方法或者属性

=>数组的元素值

?:三元运算子

10、include()语句与require()语句

如果要根据条件或循环包含文件,需要使用include()。

require()语句只是被简单的包含一次,任何的条件语句或循环等对其无效。

由于include()是一个特殊的语句结构,因此若语句在一个语句块中,则必须把他包含在一个语句块中。

<?

//下面为错误语句

if($condition)

include($file);

else

include($other);

//下面为正确语句

if($condition){

include($file);

}else

{

include($other);

}

?>

第五篇:php学习总结

调试/*………*/ //…….#..........插入时考虑清楚字段类型避免插入后出现缺值,乱码

@ 屏蔽错误or die 条件显示

以前学习php类的总结:

1.php中不能重载,但是能用子类覆盖父类的方法名称来实现新的重载

1.1 在子类中调用父类的覆盖部分可以使用 父类名称::方法名称();

2.final 只能定义类和方法,不能使用final定义成员属性,因为final是常量的意思,在php里定义常量使用的是define函数

2.1 final关键字标记的类不能被继承

2.2 final关键字标记的方法不能被子类重写

3.const是一个定义常量的关键字,在php中定义常量使用的是define()函数,但是在类里定义常量使用的是“const” 这个关键字

3.1在程序中不能修改它的值。

3.2 访问const 修饰的成员属性要使用类名,在本类的方法里使用“self”关键字,但不使用“$”符号,也不能使用对象来访问。

4.static关键字可以描述类中的成员属性和成员方法

4.1 static 的成员属于类,而不属于任何对象,4.2 static的成员是在类第一次被加载的时候分配的空间,其他类无法访问的,只对类的实例共享,能一定程度对类该成员形成保护

4.3 静态成员放到了“初始化静态段”,在类第一次加载的时候放入的,可以让堆内存里的每个对象共享。所以在静态方法里,可以使用这个方法所在的类的“类名”,也可以使用“self”来访问其他静态成员。“self”代表这个静态方法所在的类。

4.3.1 在类里的静态方法是不能访问类的非静态成员的。

4.3.2 在类的非静态方法里可以访问静态成员:”self:成员属性“;

4.4类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样,类似于全局函数。

4.5 在类内函数访问静态变量时前面加self::静态函数

4.6 静态变量可以在类外直接访问,访问方法是类名::静态变量

4.7 静态函数可以在类外直接访问,访问方式是类名::静态函数

4.8 在类内静态函数访问另一个静态函数时使用 类名::静态函数名

4.8.1 静态函数在类内访问静态变量时,访问方式是类名::静态变量

4.8.2 静态函数在类内访问静态变量时,访问方式除了是类名::静态变量外,还可以使用self::静态变量

4.9 在类内静态函数访问另一个静态函数时除了使用 类名::静态函数名外,还可以使用self::静态函数名,也可以直接调用静态函数

4.10 静态函数内不能访问非静态变量

4.11 在类内静态函数不能使用$this->非静态函数名访问非静态函数,可以使用self::非静态函数名

4.12

5.类里的”$this“,在php里面提供了一个本对象的引用$this,每个对象里面都有一个对象的引用$this来代表这个对象,完成对象内部成员的调用。

5.1 $this 就是对象内部代表这个对象的引用。

6.类里“self”,self 和$this相似,只不过self是代表这个静态方法所在的类,所以在静态方法里,可以使用这个方法所在的类的”类名“,也可以使用“self”来访问其他的静态成员,通常使用后者”self::成员属性“。

7.类里”__“开头的函数名

7.1类里”__“开头的函数名都是在某一时刻不同情况下自动调用执行的方法。

7.2__toString()方法也是自动被调用,是直接输出对象引用时自动调用的。比如“$p = new Person()”,直接用echo输出$p会产生错误,如果在类里定义了__toString()方法,再用echo直接输出对象引用的时候就不会产生错误了

8.对象串行化

8.1 __sleep()方法,在对象串行化的时候,会调用一个__sleep()方法来完成一些睡前的事情,__sleep()函数不接受任何参数,但返回一个数组,其中包含需要串行化的属性。未被包含的属性降在串行化时被忽略,如果没有__sleep()方法,php将保存所以属性.8.2 __wakeup()方法,在重新醒来时,即由二进制串重新组成一个对象的时候,则会自动调用__wakeup(),做一些对象醒来就要做的动作。

8.3 有时你可能需要一个对象在反串行化后立即执行.为了这样的目的,PHP会自动寻找__sleep和__wakeup方法.9.protected 成员能被同个类中的所有方法和继承出的类的中所有方法访问到,不能被父类的实例直接访问。protected and public 可以动态绑定

10.private 大部分private属性仍然可以被外部代码共享.解决方法是用一对public方法,一个是get(获取属性的值),另一个是set(设置属性的值).10.1private 不可以动态绑定。Private成员只存在于它们所在的类内部.不像public和protected成员那样,PHP模拟静态绑定.10.2 什么时候用到private?private成员只有当你不想让子类继承改变或特殊化父类的行为时才用到,这种情况比你想像的要少,通常来说,一个好的对象分层结构应当允许绝大多数功能被子类特殊化,改进,或改变—这是面向对象编程的基础之一。一定的情况下需要private方法或变量,例如当你确信你不想允许子类改变父类中的某个特定的部份。

11.抽象类:抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同—没有任何代码.如果类中存在一个或更多抽象方法, 那么这个类就成了抽象类.你不能实例化抽象类.你必须继承它们,然后实例化子类.你也可以把抽象类看成是子类的一个模板.如果你覆写所有的抽象方法, 子类就变成一个普通的类.如果没有覆写所有方法, 子类仍是抽象的.如果一个类中中包含有抽象方法(哪怕只有一个), 你必须声明这个类是抽象的, 在class关键字前加上abstract.声明抽象方法的语法与声明一般方法不同.抽象方法的没有像一般方法那样包含在大括号{}中的主体部份,并用分号;来结束.12.接口:如果你建立了一个只有抽象方法的类,你就定义了一个接口(interface).为了说明这种情况, PHP中有interface 和implements关键字.你可以用interface来代替抽象类, 用implements来代替extends来说明你的类定义或使用一个接口.例如, 你可以写一个myClass implements myIterface.这两种方法可以依个人偏爱来选择.12.1 如果接口中出现非抽象方法.会报错

12.2 接口中的方法默认是public 型的.其它类型的修饰符,不能修饰接口中的抽象方法.12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修饰.也不能用final

12.4 即使接口中所有的方法都是抽象方法,在接口中,可以声明静态方法.12.5 在接口中可以有常量,e.g.:

interfaceUser{

const MAX_GRADE = 99;

function getName();

function setName($_name);

}

?>

13.Namespace关键字给一块代码命名.在这个代码块外部,脚本必须用操作符::加上命名空间的名称来引用这个代码块.引用静态的类成员也是用相同的方法.在命名空间内代码不需要声明命名空间, 它本身就是默认的.这种方法比添加前缀的方法好.你的代码可由此变得更加紧凑和可读.你可能想知道是否可以建立分层的(嵌套的)命名空间.答案是不可以.但你可以在命名空间名称后加上冒号, 你可以再次调用在名称中不包含冒号的变量,函数和类.命名空间允许存在冒号,只要不是第一个字符和最后一个字符或接着另一个冒号.命名空间的名称中的冒号对于PHP来说没有任何意义, 但如果你用他们来区分逻辑上的区块, 他们可以很好地说明你的代码中的父子(parent-child)关系.14.__toString()打印对象会调用它的__toString方法.15.不能实例化的类

//

//当__construct()为public时可以实例化

class A{

private function __construct(){}

}

$a = new A();//fail

?>

15.1

//static的方法留给外部访问.

class A{

private function __construct(){}

static function getClassA(){

return “这里是后门,可以通过这里进入类内部..”;

}

}

echo A::getClassA();

?>

15.2

//不能用new实例化的类.

//static的方法留给外部访问.

//在方法内部返回实例.

class A{

private function __construct(){

echo “this is construction
n”;

}

static function getClassA(){

$a = new A();

return $a;

}

}

// 看到这里确实返回的是 A 的实例.但不是同一个对象.$a1 = A::getClassA();

$a2 = A::getClassA();

echo “$a1 的类是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){

echo “
$a1 $a2 指向同一对象.”;

}else{

echo “
$a1 $a2 不是一个对象.”;

}

//this is construction

//this is construction

//$a1 的类是 A , $a2 是 A

//$a1 $a2 不是一个对象.?>

15.3

//不能用new实例化的类.
//static的方法留给外部访问.
//在方法内部返回实例.

//定义静态属性保证这个实例能被静态方法调用.

//增加判断部分.

class A{

private static $a = null;

private function __construct(){}

static function getClassA(){

if(null == self::$a){

self::$a = new A();

}

return self::$a;

}

}

// 看到这里确实返回的是 A 的实例.但不是同一个对象.$a1 = A::getClassA();

$a2 = A::getClassA();

echo “$a1 的类是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){

echo “
$a1 $a2 指向同一对象.”;

}else{

echo “
$a1 $a2 不是一个对象.”;

}

//$a1 的类是 A , $a2 是 A

//$a1 $a2 指向同一对象.?>

下载php课程总结word格式文档
下载php课程总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    学php程序开发应该如何选择课程?

    www.xiexiebang.com 学php程序开发应该如何选择课程? 中国每年有大量的计算机类毕业生进入企业,企业会把那些程序员列入优秀人才加以重视呢?斩获高薪的程序员需要哪些素质呢? 测......

    PHP学习总结的一些经验

    其实我也是一样很新的新手,上PHP100学习视频并在论坛里学习其实也就是一个月前的事.虽然早在8月份花过一个星期看完w3school的PHP教 程,了解了许多PHP知识.但始终是缺乏一个......

    总结PHP xajax应用方案

    一、 HelloWrold步骤 PHP代码 //服务器端 require_once ("../../xajax.inc.php"); //定义处理函数, //并在处理函数中实例xajaxResponse对象, //调用其方法控制控......

    PHP核心知识阶段总结

    Require和require_once区别 Include和include_once与require和require_once行为是相类似的,因此只说一类就可以了 区别只是报错级别的不同。 加上once代表包含文件只被包含......

    PHP网站漏洞的相关总结

    PHP网站漏洞的相关总结 NB联盟-zwell 从现在的网络安全来看,大家最关注和接触最多的WEB页面漏洞应该是ASP了,在这方面,小竹是专家,我没发言权.然而在PHP方面来看,也同样存......

    PHP基础阶段知识总结[大全]

    php基础阶段内容: 1 php 基本概念,常规语法 什么是php 一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于......

    php 试题总结(附参考答案)

    php 试题总结(附参考答案) 1 JavaScript脚本语言的前身是B A.Basic B.Live Script C.Oak D.VBScript 2使用CSS对文本进行修饰,若使文本闪烁,text-decoration的取值为D A.n......

    php mysql学习总结剖析

    php 字符串 反引号里面的字符必须是命令 如`pwd` 是查看当前目录 转移字符: 符号 含义” 双引号 反斜线n 换行 t 跳位(Tab) 常量和变量 _FILE_ 这个默认常量是php程......