版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 php学习笔记总结篇一:php学习调试/*/.#插入时考虑清楚字段类型避免插入后出现缺值,乱码屏蔽错误ordie条件显示以前学习php类的总结:php中不能重载,但是能用子类覆盖父类的方法名称来实现新的重载在子类中调用父类的覆盖部分可以使用父类名称:方法名称();final只能定义类和方法,不能使用final定义成员属性,因为final是常量的意思,在php里定义常量使用的是define函数final关键字标记的类不能被继承final关键字标记的方法不能被子类重写const是一个定义常量的关键字,在php中定义常量使用的是define()函数,但是在类里定义常量使用的是const”这个关键字
2、3.1在程序中不能修改它的值。3.2访问const修饰的成员属性要使用类名,在本类的方法里使用“self”关键字,但不使用$符号,也不能使用对象来访问。4.static关键字可以描述类中的成员属性和成员方法static的成员属于类,而不属于任何对象,static的成员是在类第一次被加载的时候分配的空间具他类无法访问的,只对类的实例共享,能一定程度对类该成员形成保护静态成员放到了“初始化静态段”,在类第一次加载的时候放入的,可以让堆内存里的每个对象共享。所以在静态方法里,可以使用这个方法所在的类的“类名”,也可以使用self”来访问其他静态成员。“self”代表这个静态方法所在的类。在类里的静态
3、方法是不能访问类的非静态成员的。4.3.2在类的非静态方法里可以访问静态成员:self:成员属性“;/4.4类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样,类似于全局函数。4.5在类内函数访问静态变量时前面加self:静态函数静态变量可以在类外直接访问,访问方法是类名:静态变量静态函数可以在类外直接访问,访问方式是类名:静态函数在类内静态函数访问另一个静态函数时使用类名:静态函数名静态函数在类内访问静态变量时,访问方式是类名:静态变量静态函数在类内访问静态变量时,访问方式除了是类名:静态变量外,还可以使用self:静态变量在类内静态函数访问另一个静态函数时除了使用
4、类名:静态函数名外,还可以使用self:静态函数名,也可以直接调用静态函数静态函数内不能访问非静态变量4.11在类内静态函数不能使用$this-非静态函数名访问非静态函数,可以使用self:非静态函数名4.12类里的$this“,在php里面提供了一个本对象的引用$this,每个对象里面都有一个对象的引用$this来代表这个对象,完成对象内部成员的调用。5.1$this就是对象内部代表这个对象的引用。类里self,self和$this相似,只不过self是代表这个静态方法所在的类,所以在静态方法里,可以使用这个方法所在的类的”类名,也可以使用self来访问其他的静态成员,通常使用后者self:
5、成员属性“。类里”_“开头的函数名7.1类里”_“开头的函数名都是在某一时刻不同情况下自动调用执行的方法。7.2_toString()方法也是自动被调用,是直接输出对象引用时自动调用的。比如$p=newPerson。,直接用echo输出$p会产生错误,如果在类里定义了_toString()方法,再用echo直接输出对象引用的时候就不会产生错误了对象串行化_sleep()方法,在对象串行化的时候,会调用一个_sleep()方法来完成一些睡前的事情,一_sleep()函数不接受任何参数,但返回一个数组,其中包含需要串行化的属性。未被包含的属性降在串行化时被忽略,如果没有_sleep()方法,php
6、将保存所以属性._wakeup()方法,在重新醒来时,即由二进制串重新组成一个对象的时候,则会自动调用_wakeup(),做一些对象醒来就要做的动作。有时你可能需要一个对象在反串行化后立即执行.为了这样的目的,PHP会自动寻找_sleep和_wakeup方法.protected成员能被同个类中的所有方法和继承出的类的中所有方法访问到,不能被父类的实例直接访问。protectedandpublic可以动态绑定private大部分private属性仍然可以被外部代码共享.解决方法是用一对public方法,一个是get(获取属性的值),另一个是set(设置属性的值).10.1private不可以动态
7、绑定。Private成员只存在于它们所在的类内部.不像public和protected成员那样,PHP模拟静态绑定.10.2什么时候用到private?private成员只有当你不想让子类继承改变或特殊化父类的行为时才用到,这种情况比你想像的要少,通常来说,一个好的对象分层结构应当允许绝大多数功能被子类特殊化,改进,或改变这是面向对象编程的基础之一。一定的情况下需要private方法或变量,例如当你确信你不想允许子类改变父类中的某个特定的部份。抽象类:抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同没有任何代码.如果类中存在一个或更多抽象方法,那么这个类就成了抽象
8、类.你不能实例化抽象类.你必须继承它们,然后实例化子类.你也可以把抽象类看成是子类的一个模板.如果你覆写所有的抽象方法,子类就变成一个普通的类.如果没有覆写所有方法,子类仍是抽象的.如果一个类中中包含有抽象方法(哪怕只有一个),你必须这个类是抽象的,在class关键字前加上abstract.声明抽象方法的语法与声明一般方法不同.抽象方法的没有像一般方法那样包含在大括号中的主体部份,并用分号;来结束.接口:如果你建立了一个只有抽象方法的类,你就定义了一个接口(interface).为了说明这种情况,PHP中有interface和implements关键字.你可以用interface来代替抽象类,
9、用implements来代替extends来说明你的类定义或使用一个接口.例如,你可以写一个myClassimplementsmyIterface.这两种方法可以依个人偏爱来选择.12.1如果接口中出现非抽象方法.会报错12.2接口中的方法默认是public型的.其它类型的修饰符,不能修饰接口中的抽象方法.即使接口中所有的方法都是抽象方法,也不能使用abstract修饰.也不能用final即使接口中所有的方法都是抽象方法,在接口中,可以声明静态方法.12.5在接口中可以有常量,e.g.:?interfaceUserconstMAX_GRADE=99;functiongetName();func
10、tionsetName($_name);?13.Namespace关键字给一块代码命名.在这个代码块外部,脚本必须用操作符:加上命名空间的名称来引用这个代码块.引用静态的类成员也是用相同的方法.在命名空间内代码不需要声明命名空间,它本身就是默认的.这种方法比添加前缀的方法好.你的代码可由此变得更加紧凑和可读.你可能想知道是否可以建立分层的(嵌套的)命名空间.答案是不可以.但你可以在命名空间名称后加上冒号,你可以再次调用在名称中不包含冒号的变量,函数和类.命名空间允许存在冒号,只要不是第一个字符和最后一个字符或接着另一个冒号.命名空间的名称中的冒号对于PHP来说没有任何意义,但如果你用他们来区分
11、逻辑上的区块,他们可以很好地说明你的代码中的父子(parent-child)关系._toString()打印对象会调用它的_toString方法.不能实例化的类?/当_construct()为public时可以实例化classAprivatefunction_construct()$a=newA();/fail?15.1/static的方法留给外部访问.?classAprivatefunction_construct()staticfunctiongetClassA()return这里是后门,可以通过这里进入类内部.echoA:getClassA();?15.2/不能用new实例化的类./st
12、atic的方法留给外部访问./在方法内部返回实例.?classAprivatefunction_construct()echothisisconstructionstaticfunctiongetClassA()$a=newA();return$a;/看(转载于:zaIdian.cOM在点网)到这里确实返回的是A的实例.但不是同一个对象.$a1=A:getClassA();$a2=A:getClassA();echo$a1的类是.get_class($a1).,$a2是.get_class($a1);if($a1=$a2)echo$a1$a2指向同一对象.elseecho$a1$a2不是一个对
13、象./thisisconstruction/thisisconstruction篇二:php学习总结$_GETstring的介绍,Isset()和empty()的介绍,数据库数据类型,$_GETstring啲介绍$_GETstring他和$_POST的区别在于,当formmethod二“get”的时候,用来传值,点击下submit后,URL转到了接受值的php页面。但是URL不是这个页面的-1.phpo而是自动生成的URL。显示的是下面的URL:php?控件名(myname是文本框的控件名)=用户输入的值。所以说用这个不安全。3.1sset()和empty()的区别Isset()检查变量值是不
14、是设立了。Checkthevariableissetandexists.Empty()检查变量值是不是空。Checkifthevariablehascontents.对于empty(),空有7种可能,Null,0(空字符串),array(),false,遇到出现上面的7种情况返回true。两个返回的都是布尔值。般情况下用empty()检查表单中户输入的是否是空值。用if(!Empty($var)检查;。0,0.0primarykey主键MYSQL:createtable命令:注意columnnamecolumntype中间没有逗号,只是空格。看下格式问题:Cookie的用法已经试过Setcoo
15、kie()用于服务端在客户端创建cookie。里面的两个值是必须的。Name和value。字符串。我自己弄的cookie。Setcookie(username,admin);在IE9中按f12进入开发者工具中看缓存的cookie信息。Cookie的默认时间是当你关掉浏览器时就消失。可以用时间戳time()+秒表示时间。如:time()+(7*24*30*60)表示7天存在。读取cookie。用$_cookie读取。方括号里面是string的cookie名字。例子:mysql数据类型:用于数据库中的table下的数据的创建8.注意下:char()和varchar()的区别:Char(2)只能存一
16、个字符。而且一定是2个。Varchar(60)表示能存60个字符。不一定是60个。一般用这种。Date,日期格式time,时间格式datetime表示日期和时间格式。Dec()表示:DEC(m,n)M表示总的位数,n表示小数点后的位数。misthetotalnumberofdigitsandnisthenumberofdigitsafterthedecimalpoint.Say,youwanttostoresomenumbersliketheformat9999.9099999.Herethevalueofmis11andthatofnis7.DATE-AdateinYYYY-MM-DDfor
17、mat,例如: 8 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)-Ifthelengthisspecifi
18、edas4,YEARcanbe1901to2155.Thedefaultlengthis4.问题:If。Elseif。Elseelseifallowsustokeepevaluatingusingifstatementsasmanytimesasneeded.可以扌巴elseif看做是另外一个if。Usetheifelseif.elsestatementtoselectoneofseveralblocksofcodetobeexecuted.Syntax1if(condition)23codetobeexecutedifconditionistrue;4elseif(condition)67c
19、odetobeexecutedifconditionistrue;9else1011codetobeexecutedifconditionisfalse;问题:php连接mysql()回答:四个函数:mysql_connect(),mysql_select_db(),mysql_query(),mysql_close().相关语法:mysql_connect(),连接服务器。resourcemysql_connect(string$server,string$username,string$password).返回值:指定服务器的linkidentifier。或者未成功就是false。然后用这
20、个连接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学习总结的一些经验其实我也是一样很新
21、的新手,上PHP100学习视频并在论坛里学习其实也就是一个月前的事.虽然早在8月份花过一个星期看完w3school的PHP教程,了解了许多PHP知识.但始终是缺乏一个与众多朋友学习和交流的平台,所以一下子在几周后又把PHP又忘得七七八八了,有幸在10月尾了解到了PHP100视频和论坛,不仅可以系统地学习下PHP更可以和很多朋友一起学习成长这更是件好事.在php100视频中学到了许多,而论坛中看帖和回帖也更让我巩固了学习的知识并让我学到了很多,这不仅不会让我又把PHP知识快速忘记(因为工作中用是ASP而PHP不会在工作中用,所以忘得快),反而在取得进步的同时,我也能帮助一些人,这也是一样是学习胜
22、利的过程,我喜欢并享受其中.以下是我上论坛以来的回复总结,将不断持续总结.希望有利于与我一样的新手一起成长.首先来个,题前语:任何的学习,都需要自信,再新的新手也应该抛弃心中的恐惧,有时关键在于你心平下来,踏入学习后,你将慢慢化开迷惑,获得信心,赢取自信!让我们共同进步.Undefinedindex问题是运行的时候出现类似:Notice:Undefinedindex:actioninD:wampwwwadd.phponline3的原因:可详参见此帖: HYPERLINK /read.php?tid=15843 /read.php?tid=15843page=1#138857是php配置的事情这
23、个错误是因为php页面中的变量没有初始化而导致的!可以通过设置PHPINI搞好,也可以在变量前面加上一个就可以解决这个地方的问题了!如这里指示第三行Notice:Undefinedindex:actioninD:wampwwwadd.phponline3那么找到第3行加上if($_GETaction=save)你再运行下,发现还有提示,但行号变了,那么你再在行号对应的未初始化的变量前加即可解决劳永逸的是在php.ini中的error配置下错误显示方式估计你里边的error_reporting二E_ALL扌巴error_reporting这个设为error_reporting=E_ALLE_NO
24、TICE别忘了改动后,重启下APCHE服务器,才会生效这样,以后就不用在这种情况下加了具体参考下这个设置下 HYPERLINK /2009/0617/6463.php /2009/0617/6463.php遇到页面明确提示你错误的,并有显示如何错的,建议先把语句复制部分重点词句或全部语句到百度或google,更快速让在你排查错误找到方法.其实这也是一种高效有益的学习方法,毕竟在工作中,遇到些没遇过的新问题,有时都需要借助网上的资源给自己灵感和助力,本人就一天不下几十次用百度搜索.如程序中遇到诸如含提示:显示的错误为:Parseerror:syntaxerror,unexpected$endin
25、D:wampwwwestlist.phponline21那么你就可以把syntaxerror,unexpected$end作为关键词到百度搜索,那么你即刻可以得到助力甚至答案.以上那句举例的错误是因为:短标签没有打开.解决方法是打开php.ini把short_open_tag短标签打开,重启服务即可提示的时候,有时顺便把代码帖上帖子是必要的,这样才能快速地在别人的帮助下问题得到解决对单引号和双引号有迷惑,大家可以看这篇文章解下惑:在调试程序时,经常要用到echo你的sql语句来,检查传值后sql变成了什么样的情况,以便排查错误.向数据库表插入数据INSERTINTO语句用于向数据库表添加新纪录
26、。语法INSERTINTOtable_nameVALUES(value1,value2,)-此种情况是需要按你表中所有字段的顺序全咅Bvalue填上!您还可以希望在其中插入数据的列:INSERTINTOtable_name(column1,column2,.)VALUES(value1,value2,)-张老师明确建议用此种方法!有人疑惑,$_POST或$GET取得时的引号问题:其实是要不要引号,单引号或双引号都是没有问题的.如,$_POSTname和$_卩05叮name和$_POSTname都是在windows下一样的,在linux下情况具体没用过,不知道,还望高手告知.针对多数人的留言板课
27、程中许多问题(如,into存不进数据问题)的总结:检查你数据库表的结构是否正确,如id是否设为自增into语句是否正确,如单词是否正确,into.values.是否将(反斜点,在1键前)号和(引号)是否使用位置正确,正确的方法是:应该放在表和字段边,而是放在字符串型(或者说是非数字型)的值边上检查你的各语句,是否在结尾将分号(;)正确结束检查你的submit表单项的name值是否你判断的取值,如inputtype=submitname=submitvalue=提交时,你的判断是否提交应是if($_POSTsubmit).;当你的是inputtype=submitname=othernamevalue=提交时,你的判断是否提交应是if($_POSTothername).检查你的$_POST是否大写,当你写成$_post是不行的,因为$_GET,$_POST等都是PHP系统环境的硬性用法用echo输出你的sql检查传值情况检查你的短标签
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Ko-143-Standard-生命科学试剂-MCE
- 2026年漯河消防进军训测试题及答案
- 2026年南亚印度测试题及答案
- 2026年物业消防主管测试题及答案
- 2026年急救自救知识测试题及答案
- 2026年哈佛耶鲁入门测试题及答案
- 2026年excel办公测试题及答案
- 2026年脑部智力测试题及答案
- 口腔诊所年度工作总结(五篇)
- 肝癌肺转移诊治共识2026
- 3.4 我们来造“环形山”课件(内嵌视频) 2025-2026学年教科版科学三年级下册
- 2026年高考英语完形填空试题及答案
- 2026江苏南通中远海运川崎船舶工程有限公司招聘劳务派遣人员15人笔试备考试题及答案解析
- 明天会更好 课件(内嵌音视频) 2025-2026学年人音版音乐六年级下册
- 小学数学巧算24点专项练习题(每日一练共19份)
- 学生综合积分管理培训
- 2025年上海市普通高中学业水平等级性考试地理试卷(含答案)
- 气管镜激光培训课件
- 2022年七年级地理下册会考模拟真题卷(含解析)
- 2025年中式烹调师(五级)职业鉴定重点试题库(附答案)
- 2025年河北机关事业单位工人技师应知应会考试(广播电视机务员)训练题及答案
评论
0/150
提交评论