php培训总结精选word文档 16页.docx

上传人:b****5 文档编号:12576869 上传时间:2023-04-20 格式:DOCX 页数:16 大小:23.51KB
下载 相关 举报
php培训总结精选word文档 16页.docx_第1页
第1页 / 共16页
php培训总结精选word文档 16页.docx_第2页
第2页 / 共16页
php培训总结精选word文档 16页.docx_第3页
第3页 / 共16页
php培训总结精选word文档 16页.docx_第4页
第4页 / 共16页
php培训总结精选word文档 16页.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

php培训总结精选word文档 16页.docx

《php培训总结精选word文档 16页.docx》由会员分享,可在线阅读,更多相关《php培训总结精选word文档 16页.docx(16页珍藏版)》请在冰豆网上搜索。

php培训总结精选word文档 16页.docx

php培训总结精选word文档16页

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!

==本文为word格式,下载后可方便编辑和修改!

==

php培训总结

篇一:

php学习总结

调试/*………*///…….#..........

插入时考虑清楚字段类型避免插入后出现缺值,乱码

@屏蔽错误ordie条件显示

以前学习php类的总结:

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

1.1在子类中调用父类的覆盖部分可以使用父类名称:

:

方法名称();

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

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

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

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

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

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

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

4.1static的成员属于类,而不属于任何对象,

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

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=newPerson()",直接用echo输出$p会产生错误,如果在类里定义了__toString()方法,再用echo直接输出对象引用的时候就不会产生错误了

8.对象串行化

8.1__sleep()方法,在对象串行化的时候,会调用一个__sleep()方法来完成一些睡前的事情,__sleep()函数不接受任何参数,但返回一个数组,其中包含需要串行化的属性。

未被包含的属性降在串行化时被忽略,如果没有__sleep()方法,php将保存所以属性.

8.2__wakeup()方法,在重新醒来时,即由二进制串重新组成一个对象的时候,则会自动调用__wakeup(),做一些对象醒来就要做的动作。

8.3有时你可能需要一个对象在反串行化后立即执行.为了这样的目的,PHP会自动寻找__sleep和__wakeup方法.

9.protected成员能被同个类中的所有方法和继承出的类的中所有方法访问到,不能被父类的实例直接访问。

protectedandpublic可以动态绑定

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来说明你的类定义或使用一个接口.例如,你可以写一个myClassimplementsmyIterface.这两种方法可以依个人偏爱来选择.

12.1如果接口中出现非抽象方法.会报错

12.2接口中的方法默认是public型的.其它类型的修饰符,不能修饰接口中的抽象方法.

12.3即使接口中所有的方法都是抽象方法,也不能使用abstract修饰.也不能用final

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

12.5在接口中可以有常量,e.g.:

interfaceUser{

constMAX_GRADE=99;

functiongetName();

functionsetName($_name);

}

?

>

13.Namespace关键字给一块代码命名.在这个代码块外部,脚本必须用操作符:

:

加上命名空间的名称来引用这个代码块.引用静态的类成员也是用相同的方法.在命名空间内代码不需要声明命名空间,它本身就是默认的.这种方法比添加前缀的方法好.你的代码可由此变得更加紧凑和可读.

你可能想知道是否可以建立分层的(嵌套的)命名空间.答案是不可以.但你可以在命名空间名称后加上冒号,你可以再次调用在名称中不包含冒号的变量,函数和类.命名空间允许存在冒号,只要不是第一个字符和最后一个字符或接着另一个冒号.命名空间的名称中的冒号对于PHP来说没有任何意义,但如果你用他们来区分逻辑上的区块,他们可以很好地说明你的代码中的父子(parent-child)关系.

14.__toString()打印对象会调用它的__toString方法.

15.不能实例化的类

//

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

classA{

privatefunction__construct(){}

}

$a=newA();//fail

?

>

15.1

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

classA{

privatefunction__construct(){}

staticfunctiongetClassA(){

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

}

}

echoA:

:

getClassA();

?

>

15.2

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

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

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

classA{

privatefunction__construct(){

echo"thisisconstruction
\n";

}

staticfunctiongetClassA(){

$a=newA();

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不是一个对象.";

}

//thisisconstruction

//thisisconstruction

篇二:

php学习总结

$_GET[string]的介绍,Isset()和empty()的介绍,数据库数据类型,

1.$_GET[string]的介绍

2.$_GET[string]

他和$_POST的区别在于,当formmethod=“get”的时候,用来传值,

点击下submit后,URL转到了接受值的php页面。

但是URL不是这个页面的--1.php。

而是自动生成的URL。

显示的是下面的URL:

php?

控件名(myname是文本框的控件名)=用户输入的值。

所以说用这个不安全。

3.Isset()和empty()的区别

Isset()检查变量值是不是设立了。

Checkthevariableissetandexists.

Empty()检查变量值是不是空。

Checkifthevariablehascontents.

对于empty(),空有7种可能,Null,0,‘’(空字符串),array(),false,遇到出现上面的7种情况返回true。

两个返回的都是布尔值。

一般情况下用empty()检查表单中户输入的是否是空值。

用if(!

Empty($var))检查;

"0",0.0

primarykey主键

4.MYSQL命令:

createtable

命令:

注意columnnamecolumntype中间没有逗号,只是空格。

看下格式

问题:

Cookie的用法

已经试过

5.Setcookie()用于服务端在客户端创建cookie。

里面的两个值是必须的。

Name和value。

字符串。

我自己弄的cookie。

Setcookie(‘username’,‘admin’);

在IE9中按f12进入开发者工具中看缓存的cookie信息。

6.Cookie的默认时间是当你关掉浏览器时就消失。

可以用时间戳time()+秒表示时间。

如:

time()

+(7*24*30*60)表示7天存在。

读取cookie。

用$_cookie[]读取。

方括号里面是string的cookie名字。

例子:

7.mysql数据类型:

用于数据库中的table下的数据的创建

8.

注意下:

char()和varchar()的区别:

Char

(2)只能存一个字符。

而且一定是2个。

Varchar(60)表示能存60个字符。

不一定是60个。

一般用这种。

Date,日期格式

time,时间格式

datetime表示日期和时间格式。

Dec()表示:

DEC(m,n)

M表示总的位数,n表示小数点后的位数。

misthetotalnumberofdigitsandnisthenumberofdigitsafterthedecimalpoint.Say,youwanttostoresomenumbersliketheformat9999.9099999.Herethevalueofmis11andthatofnis7.

DATE-AdateinYYYY-MM-DDformat,例如:

1973-12-30.

DATETIME-inYYYY-MM-DDHH:

MM:

SS1973-12-3015:

30:

00.TIMESTAMP-ThislookslikethepreviousDATETIMEformat,onlywithoutthehyphensbetweennumbers;3:

30intheafternoononDecember30th,1973wouldbestoredas19731230153000(YYYYMMDDHHMMSS).

TIME-StoresthetimeinHH:

MM:

SSformat.

YEAR(M)-Ifthelengthisspecifiedas4,YEARcanbe1901to2155.Thedefaultlengthis4.

问题:

If.。

Elseif。

Else

elseifallowsustokeepevaluatingusingifstatementsasmanytimesasneeded.可以把elseif看做是另外一个if。

Usetheif....elseif...elsestatementtoselectoneofseveralblocksofcodetobeexecuted.Syntax

1if(condition)

23codetobeexecutedifconditionistrue;

4

5elseif(condition)

6

7codetobeexecutedifconditionistrue;

8

9else

10

11codetobeexecutedifconditionisfalse;

问题:

php连接mysql()

回答:

四个函数:

mysql_connect(),mysql_select_db(),mysql_query(),mysql_close().

相关语法:

mysql_connect(),连接服务器。

resourcemysql_connect(string$server,string$username,string$password).返回值:

指定服务器的linkidentifier。

或者未成功就是false。

然后用这个连接mysql中的数据库

boolmysql_select_db(string$database_name[,resource$link_identifier=NULL].

Mysql_select_db()用于连接mysql服务器上的数据库。

下面的mysql_query()用来在这个数据库中执行。

前面$a=Mysql_select_db()错误。

mysql_query()语法:

resourcemysql_query(string$query[,resource$link_identifier=NULL])用于给数据库发送命令。

返回resource,是个结

篇三:

PHP学习总结的一些经验

其实我也是一样很新的新手,上PHP100学习视频并在论坛里学习其实也就是一个月前的事.虽然早在8月份花过一个星期看完w3school的PHP教程,了解了许多PHP知识.但始终是缺乏一个与众多朋友学习和交流的平台,所以一下子在几周后又把PHP又忘得七七八八了,有幸在10月尾了解到了PHP100视频和论坛,不仅可以系统地学习下PHP,更可以和很多朋友一起学习成长这更是件好事.

在php100视频中学到了许多,而论坛中看帖和回帖也更让我巩固了学习的知识并让我学到了很多,这不仅不会让我又把PHP知识快速忘记(因为工作中用是ASP,而PHP不会在工作中用,所以忘得快),反而在取得进步的同时,我也能帮助一些人,这也是一样是学习胜利的过程,我喜欢并享受其中.

以下是我上论坛以来的回复总结,将不断持续总结.希望有利于与我一样的新手一起成长.

首先来个,题前语:

任何的学习,都需要自信,再新的新手也应该抛弃心中的恐惧,有时关键在于你心平下来,踏入学习后,你将慢慢化开迷惑,获得信心,赢取自信!

让我们共同进步.

----------

==========

Undefinedindex问题

是运行的时候出现类似:

Notice:

Undefinedindex:

actioninD:

\wamp\www\add.phponline3的

原因:

可详参见此帖:

/read.php?

tid=15843&page=1#138857

是php配置的事情

这个错误是因为php页面中的变量没有初始化而导致的!

可以通过设置PHP.INI搞好,

也可以在变量前面加上一个@就可以解决这个地方的问题了!

如这里指示第三行

Notice:

Undefinedindex:

actioninD:

\wamp\www\add.phponline3

那么找到第3行加上@

if(@$_GET['action']=='save'){

你再运行下,发现还有提示,但行号变了,那么你再在行号对应的未初始化的变量前加@即可解决

一劳永逸的办法是在php.ini中的error配置下错误显示方式

估计你里边的error_reporting=E_ALL

把error_reporting这个设为

error_reporting=E_ALL&~E_NOTICE

别忘了改动后,重启下APCHE服务器,才会生效

这样,以后就不用在这种情况下加@了

-

具体参考下这个设置下/201X/0617/6463.php

----------

==========

遇到页面明确提示你错误的,并有显示如何错的,建议先把语句复制部分重点词句或全部语句到XX或

google,更快速让在你排查错误找到方法.其实这也是一种高效有益的学习方法,毕竟在工作中,遇到些没

遇过的新问题,有时都需要借助网上的资源给自己灵感和助力,本人就一天不下几十次用XX搜索.

如程序中遇到诸如含提示:

显示的错误为:

Parseerror:

syntaxerror,unexpected$endinD:

\wamp\www\test\list.phponline21

那么你就可以把syntaxerror,unexpected$end作为关键词到XX搜索,那么你即刻可以得到助力甚

至答案.以上那句举例的错误是因为:

短标签没有打开.解决方法是打开php.ini把short_open_tag短标签

打开,重启服务即可

----------

==========

提示的时候,有时顺便把代码帖上帖子是必要的,这样才能快速地在别人的帮助下问题得到解决

----------

==========

对单引号和双引号有迷惑,大家可以看这篇文章解下惑:

----------

==========

在调试程序时,经常要用到echo你的sql语句来,检查传值后,sql变成了什么样的情况,以便排查错误.

----------

==========

向数据库表插入数据

INSERTINTO语句用于向数据库表添加新纪录。

语法

INSERTINTOtable_nameVALUES(value1,value2,....)--此种情况是需要按你表中所有字段的顺

序全部value填上!

您还可以规定希望在其中插入数据的列:

INSERTINTOtable_name(column1,column2,...)VALUES(value1,value2,....)--张老师明确建

议用此种方法!

----------

==========

有人疑惑,$_POST或$GET取得时的引号问题:

其实是要不要引号,单引号或双引号都是没有问题的.

如,$_POST[name]和$_POST['name']和$_POST["name"]都是在windows下一样的,在linux下情况具体没

用过,不知道,还望高手告知.

----------

==========

针对多数人的留言板课程中许多问题(如,insertinto存不进数据问题)的总结:

1.检查你数据库表的结构是否正确,如id是否设为自增

2.insertinto语句是否正确,如单词是否正确,insertinto...values...

3.是否将`(反斜点,在1键前)号和'(引号)是否使用位置正确,正确的方法是:

`应该放在表和字段边,而'

是放在字符串型(或者说是非数字型)的值边上

4.检查你的各语句,是否在结尾将分号(;)正确结束

5.检查你的submit表单项的name值是否你判断的取值,如

value="提交">时,你的判断是否提交应是if($_POST[submit]){...};当你的是

type="submit"name="othername"value="提交">时,你的判断是否提交应是if($_POST

[othername]){...}

6.检查你的$_POST是否大写,当你写成$_post是不行的,因为$_GET,$_POST等,都是PHP系统环境的硬性用

7.用echo输出你的sql检查传值情况

8.检查你的短标签是否打开

9.注意你的method是get还是post

10.检查你的表单相关单词或引号是否书写正确.很多莫名其妙的问题,多是细节问题.要小心查对才能看

出来.

----------

sql语句中表名和字段名在windows的情况下是可以不加小斜点(键盘左上角1键前的那个点键)的,但听说

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1