PHP学习心得3000字

时间:2020-06-01 00:00:00 300字

第一篇、PHP学习总结

PHP学习心得3000字

1、PHP概述

2、PHP基础

3、面向对象思想

4、面向对象的PHP

5、字符串和正则表达式

6、PHP专题相关

7、PHP常用API分类汇总

8、MVC框架及模板

9、PHP网站部署及安全

10、PHP网站常见模块(非框架版)

11、PHP网站常见模块(TP框架版)

12、用PHP+Mysql构造网站系统案例(详细设计文档)

1、PHP概述

第二篇、php学习心得

PHP学习心得3000字

php学习心得(适合php初学者)

来源: 发布时间:2009-09-18 发布人: 浏览:30人次 字体:[大 中 小]

页面之间无法传递变量 get,post,session在最新的php版本中自动全局变量是关闭的,所以要从上一页面取得提交过来得变量要使用$_GET['foo'],$_POST['foo'],$_SESSION['foo']来得到

当然也可以修改自动全局变量为开(php.ini改为register_globals = On);考虑到兼容性,还是强迫自己熟悉新的写法比较好。

Win32下apache2 用get方法传递中文参数会出错

test.php?a=你好&b=你也好

传递参数是会导致一个内部错误

解决办法:"test.php?a=".urlencode(你好)."&b=".urlencode(你也好)

.............

win32下的session不能正常工作

php.ini默认的session.save_path = /tmp

这显然是linux下的配置,win32下php无法读写session文件导致session无法使用 把它改成一个绝对路径就可以了,例如session.save_path = c:windows emp

显示错误信息

当php.ini的display_errors = On并且error_reporting = E_ALL时,将显示所有的错误和提示,调试的时候最好打开以便纠错,如果你用以前php写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提示,解决办法是探测或者屏蔽

例如显示$foo,可以if(isset($foo)) echo $foo 或者echo @$foo

Win32下mail()不能发送电子邮件

在linux下配置好的sendmail可以发送,在win32下需要调用smtp服务器来发送电子邮件 修改php.ini的SMTP = ip //ip是不带验证功能的smtp服务器(网上很难找到)

php发送邮件的最好解决方法是用socket直接发送到对方email服务器而不用转发服务器

初装的mysql如果没有设置密码,应该使用

update mysql.user set password="yourpassword" where user="root"

修改密码

header already sent

这个错误通常会在你使用HEADER的时候出现,他可能是几种原因:1,你在使用HEADER前PRING或者ECHO了2.你当前文件前面有空行3.你可能INCLUDE了一个文件,该文件尾部有空行或者输出也会出现这种错误。!

更改php.ini后没有变化

重新启动web server,比如IIS,Apache等等,然后才会应用最新的设置

php在2003上面安装(ISAPI的安装方法恳请高手指教)

PHP4的php4isapi.dll好像和2003有些冲突,只能用CGI模式安装

步骤一,先 下在一个安装程序,我是装的是:php-4.2.3-installer.exe,你也可以去找最新的版本,在安装php-4.2.3-installer.exe之前保证你的IIS6.0启动了,并能够访问。安装好以后,在默认网站-->应用程序配置

步骤二:点击 web服务扩展 -->新建web服务扩展.

步骤三: 扩展名-->php,然后添加

步骤四:找到php.exe的路径添加上去。

步骤五: 确定就可以了!

步骤六: 选择php的服务扩展,然后点击允许。

有时候sql语句不起作用,对数据库操作失败

最简便的调试方法,echo那句sql,看看变量的值能得到不

include和require的区别

两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出

据我测试,win32平台下它们都是先包含后执行,所以被包含文件里最好不要再有include或require语句,这样会造成目录混乱。或许*nux下情况不同,暂时还没测试

如果一个文件不想被包含多次可以使用include_once或require_once## 读取,写入文档数据 function r($file_name) {

$filenum=@fopen($file_name,"r");

@flock($filenum,LOCK_SH);

$file_data=@fread($filenum,filesize($file_name));

@fclose($filenum);

return $file_data;

}

function w($file_name,$data,$method="w"){

$filenum=@fopen($file_name,$method);

flock($filenum,LOCK_EX);

$file_data=fwrite($filenum,$data);

fclose($filenum);

return $file_data;

}

isset()和empty()的区别

两者都是测试变量用的

但是isset()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空 如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示

如果一个变量被赋空值,$foo=""或者$foo=0或者 $foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是说赋空值不会注销一个变量。

要注销一个变量,可以用 unset($foo)或者$foo=NULL

mysql查询语句包含有关键字PHP学习心得3000字

php查询mysql的时候,有时候mysql表名或者列名会有关键字

这时候查询会有错误。例如表名是order,查询时候会出错

简单的办法是sql语句里表名或者列名加上`[tab键上面]来加以区别

例如select * from `order`

通过HTTP协议一次上传多个文件的方法

有两个思路,是同一个方法的两种实现。具体程序还需自己去设计

1,在form中设置多个文件输入框,用数组命名他们的名字,如下:

这样,在服务器端做以下测试

echo "

";

print_r($_FILES);

echo "

";

1,在form中设置多个文件输入框,但名字不同,如下:

在服务器端做同样测试:

echo "

";

print_r($_FILES);

echo "

";

第三篇、php实训心得

PHP学习心得3000字

php实训心得

PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,下面是学习啦带来的php实训心得体会,仅供参考。 php实训心得一:

1、关于输出:echo不是函数,只是一个语言结构,因此不需要用括号把后面的参数括起来,当然,它也允许使用像函数那样的括号,如echo("hello,xiyounet!")。

2、关于变量类型:在php变量类型上,一直存在不同的声音。有的人认为不用关注变量类型是php的优点,使开发更简单;有的人则认为没有严格的变量类型阻碍了php的发展,也使得php程序很不规范。我觉得这是一个仁者见仁智者见智的问题。在开发php中,确实很少存在像java等语言那样频繁地进行变量定义和类型转换,给开发者带来了很大的方便。而同时,php程序的规范性、可读性也不如java那么严谨,但这正是php的特点,因为php能发展到现在,成为三大网络编程语言之一,在很大程度上归功于它的简单,易学,易用的特点。因此,总体上看是优点大于缺点。至于它的缺点,可以通过加强编码的规范,增加注释等来弥补,况且在php中也是可以明确定义变量的使用类型的。

3、关于分支程序:在较多分支的情况下,使用switch不只是在程序结构上要优于if,在性能上比if要好得多。例子中的条件是$a(一个变量),这个条件当然也是可以像if中的条件那样是个表达式。在if分支中,每个分支都会对条件表达式进行一次运算,但在switch中,它只对条件计算一次就会与所有分支进行对比。所以在有两个以上的分支中,建议尽量使用switch来代替冗长的if嵌套。

4、关于文件引用:php中文件引用的两个函数:include include_once和require require_once推荐使用require_once和include_once这样可以避免文件被重复多次使用。而include的功能和require十分相似,只是include在错误处理上放宽了一点,如果include的文件不存在,只会给出一个警告并运行后面的代码,但require则会给出错误并停止运行。事实上,include和require的主要差别在于,include仅当被执行时才会被包含进来,而require不论是否真的被执行都会先将文件包含进来。例如,if($conditions) { include "inc.php";}.只有当$conditions为ture时,inc.php才会被引入并被解释。但如果是require,PHP解释器不论$conditions是什么,都会先引入inc.php,再一同解析所有程序。因此,require看上去比include要严格一些。

5、关于注释:注释是程序中必不可少的部分,高质量的注释往往会使程序更具可用性。一般而言,典型代码中的注释包括:文件说明、类说明、方法函数说明、属性变量说明、特殊情况解释。下面作点简要的解释:

A、文件说明:针对整个代码文件所作的说明,例如文件名、版本号、作者、发布日期、使用说明等。

B、类说明:用简要的文字描述这个类的作用。

C、方法函数说明:应该相对详细一些,需要说明函数的作用、参数类型的作用、返回值类型的作用等。

D、属性变量说明:用简要的文字描述它的作用。

E、特别说明:针对某部分的代码注释说明,一些程序的思路、算法也需要在代码旁边注明,一般是使用单行注释。

6、关于代码复用:就是指代码重用。利用曾经写过或者别人写过的正确代码,而不是再重新编写相同功能的代码的过程就是代码重用。除了代码级的复用还有体系机构的复用、设计模式的复用等形式,但所有的目的就是为了最大程度地减少重复劳动,提高开发的质量和效率。

php实训心得二:

我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:

我的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。

我先把我自己学习PHP的过程做一下概括:

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

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

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

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

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

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

我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单,即使是小吃部的烧饼也不是一下子就会做成的。 我先解释一下我的学习思路。

首先,理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。 在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。

HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的,我想大部分新手之所以觉得概念难学,大部分是一个字“懒”,懒是阻止进步的最大敌人,所以克服掉懒的习惯,才能更快的学好一样东西。 也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?

OK,掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。

我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,皮皮我的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。

那么咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。

对于PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,但是如果你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。

书过三遍自然熟,这个简单的道理告诉我们,即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。

在一段挣扎之后,聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。

搞清楚HTML和PHP的概念,那么PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。

高兴一段时间就必须继续努力了,接下来就是学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。

头晕归头晕,目眩归目眩,你不可能吃饭的时候咬了自己一下舌头就从此不吃饭了不是?放下畏惧,继续努力,咱们是来征服它的,而不是被它征服的,振奋起来吧同志。

在一番搏斗之后,你终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。

学会了PHP和数据库的你,无疑是左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!

等到你发奋努力的学会了用PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。PHP学习心得3000字

这个时候的你也许是这种状态:

你会HTML吗?会,我能编好几个大表格排板的网页啦!

你会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!

你会MYSQL吗?会,我会把我的信息在数据库里插入删除啦

那,接下来你该怎么做呢?我觉得,小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。

花了一段时间,你终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。

但是,你可能瞅瞅东,看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?

不要急,可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。

再有条件的话,买本书看看吧,《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)

巩固了自己的知识,熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-

这个时候,你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧,让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。

几天之后你再打开留言本,哎?哇,一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!

你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。

那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?

恩,学!加紧学呀学,学会了这些之后,你又学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...

总而言之,你绝对不会发现你全部都学会了,一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!

我想通过我的一番YY,你也应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^

看完之后你发现,罗嗦这么多,对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,皮皮你有没?

我.......我没有,但是2分钟之内把你扁进医院里,我倒是有把握-_-

学东西,永远不要妄想有速成这一说,告诉你了一个方式,但是缺少努力这一环节,那也是白搭。

但是有一点我可以给你保证的就是,你学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。

不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。

讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴,然后大吼:别人可以,我为什么就不可以?(是不是有点阎罗教练的味道,默默的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了)

另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学,也得学会了PHP。然后再学,见异思迁是最不可取的,狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起,没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。

php实训心得三:

PHP是一个基于服务端来创建动态网站的脚本语言,我们可以用PHP和HTML生成网站主页。当一个访问者打开主页时,服务端便执行PHP的命令并将执行结果发送至访问者的浏览器中, PHP和他们不同之处在于PHP开放源码和跨越平台,PHP可以运行在WINDOWS?NT和多种版本的UNIX上。它不需要任何预先处理而快速反馈结果,它也不需要mod_perl的调整来使您的服务器的内存映象减小。PHP消耗的资源较少,当PHP作为Apache Web服务器一部分时,运行代码不需要调用外部二进制程序,服务器不需要承担任何额外的负担。

这个学期开设php web 设计的课程,跟以前所有开设的课程有很大的区别,这门课程的灵活性很强,学习起来说难不难说易不易;其实学习的过程当中并不一定要学到多少东西,个人觉得开散思维怎样去学习,这才是最重要的,而这门课程恰好体现了这一点。此次的实训以班级为主体,以个人为单位而开展的一次综合的实践,老师也给予我们足够的空间让我

们完成此次的实训,这让我觉得压力减轻。

这次的实训从代码上面看起来很复杂,原来以为自己负责将网站建起来任务是最轻的,没有想到是最为复杂的。我们的时间有限,不得不在其他的时间进行补充和修改。此次我们的主题就是围绕学生管理系统和新闻发布系统,

通过这次的实训,让我受益匪浅。第一.不懂就问,即使一个学习的机会又是一个解决问题的办法。不管这次的结果会怎样,至少我曾经在一起努力过,体验其中的过程才是收获。 第二:在建系统的过程当中,有些地方没有接触过,不懂得怎样将它的效果在自己的网页中实现;如果没有这次实训,我也不会刻意的去学,去摸索,更不会看到自己的缺陷。第三:通过这次的实践操作,我认识到了自己的不足,更感觉到了自己与别人的差距。为了明年的毕业而做准备,从各方面充实自己,使自己适应这个社会。

总之,这次的实训给予了我不同的学习方法和体验,让我深切的认识到实践的重要性。在以后的学习过程中,我会更加注重自己的操作能力和应变能力,多与这个社会进行接触,让自己更早适应这个陌生的环境,相信在不久的将来,可以打造一片属于自己的天地

第四篇、php学习总结

PHP学习心得3000字

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

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

@ 屏蔽错误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.1 private 不可以动态绑定。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.:

<?

interface User{

const MAX_GRADE = 99;

function getName();

function setName($_name);

}

?>PHP学习心得3000字

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 constructionn";

}PHP学习心得3000字

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

第五篇、PHP学习总结的一些经验

PHP学习心得3000字

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

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

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

首先来个,题前语:

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

----------

==========

Undefined index问题

是运行的时候出现类似:Notice: Undefined index: action in D:wampon line 3 的

原因:

可详参见此帖:

是 php 配置的事情

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

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

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

如这里指示第三行

Notice: Undefined index: action in D:wampon line 3

那么找到第3行加上@

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

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

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

估计你里边的error_reporting=E_ALL

把error_reporting这个设为

error_reporting = E_ALL & ~E_NOTICE

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

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

-

具体参考下这个设置下

----------

==========

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

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

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

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

显示的错误为:

Parse error: syntax error, unexpected $end in D:wampon line 21

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

至答案.以上那句举例的错误是因为:短标签没有打开.解决方法是打开php.ini把short_open_tag短标签

打开,重启服务即可

----------

==========

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

----------

==========

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

----------

==========

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

----------

==========

向数据库表插入数据

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

语法

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

序全部value填上!

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

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

议用此种方法!

----------

==========

有人疑惑,$_POST或$GET取得时的引号问题:其实是要不要引号,单引号或双引号都是没有问题的.

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

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

----------

==========

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

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

2.insert into语句是否正确,如单词是否正确,insert into ... 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键前的那个点键)的,但听说

在linux中不加会引出些问题,兼容的写法是有小斜点.

如:windows下:

$sql="select * from table "

$sql="select * from `table` "

是效果一样的

再次重点提示是:

`(反斜点,在1键前)号和'(引号)使用位置,正确的方法是:`应该放在表和字段边,而'是放在字符串型(或

者说是非数字型)的值边

----------

==========

php100第十三讲的page.PHP中的翻页显示信息有问题的解决方法:

因为页面没有取值到URL值的page,所以在函数内的page会一直是1,所以会一直是第1页的数据

解决方法,就是在调用函数前把page取得就好了!函数里会把取到的page值作为全局变量传入函数使用的

了!

include("conn.php");

$nump=mysql_query("SELECT * FROM `test`");

$total=mysql_num_rows($nump);

//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所

以省略掉)。

$page=$_GET[page]; //------------------------------在这里加入这行就OK了!

_PAGEFT($total,5);

echo $pagenav;

$query=mysql_query("SELECT * FROM `test` limit $firstcount,$displaypg "); //---见下面 while($row=mysql_fetch_array($query)){

echo "".$row[name]." | ".$row[sex];

}

以上的

调试方法,其实你只要学下张老师把sql语句输出来看下,你就知道是怎么回事了!

echo $sql="SELECT * FROM `test` limit $firstcount,$displaypg ";

$result=mysql_query($sql);

----------

==========

分页有问题的朋友,不妨看下如下:

关于分页,这有一篇论坛朋友的学习心得,学习下,你也许有所得:

另有一篇本人转发上去的分页讲解:

----------

第六篇、php学习心得肖炽

PHP学习心得3000字

php学习心得

第四组 肖 炽 有幸参加中职教师培训,能在老师的指导下学习,在这里我学到了很多的新知识,最近学习的php动态网页设计就是其中之一,虽然以前有过高级语言的基础,但php动态网页设计这门课程对我仍然有一定的难度,但老师的精心指导和自己的努力下,渐渐找到了php的学习窍门,大有进步。现将本阶段的学习体会,总结如下:

一. 注重基础

Php动态网页设计这门课程的学习不仅需要我们掌握静态网页

设计的基础,而且要求我们有一定的语言学习基础,有幸之前教过多年的C语言程序设计,对高级语言的语法知识有一定的了解,所以对PHP中的一些与语法有关的知识,理解不是很困难,建议不了解高级语言语法知识的同仁,多学习一些高级语言的语法。同时,要掌握静态网页的设计。因为,我们编写PHP动态网页离不开静态网页,这是基础。

二.学习过程和学习体会

1.培养学习性趣

大家都知道编程是一门很枯燥的事业,所以大家一定要有兴趣,可能刚开始打算学的时候是因为别人说php有多好,php多么流行,但是后来伴随着学习的深入,你的这些兴趣可能会慢慢消亡,所以适当培养兴趣会激发自己的学习动力。

学习过静态网页设计的同仁们都知道,我们刚开始学习静态网页的时候,我们最有效的方法就是边学边做,在做的过程中将一些知识点掌握,同样对PHP的学习也是如此,我们要在实践中学习,在掌握了静态网页的基础上,如果有一[定的语言基础,我们可以慢慢地坐下来,仔细研究PHP中的一些代码,理解动态语言的概念,运做机制,熟悉PHP语法, 在一段挣扎之后,显然已经逐渐的开悟了,慢慢的理解了编程的概念,此时可以说你已经迈出了成功的第一步。

2.接下来就是学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,mysql数据库可不是一下就能完全理解的,你可以试着一步一步学习,首先学习如何建立数据库,如何建立数据表等知识,在掌握数据库和表的建立方法后,可以学习如何在PHP中引用数据库中的数据,仔细研究其中的代码,并加以熟悉,然后就打开PHP动态网页设计之门了。具体学习步骤如下:

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

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

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

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

(5)不断巩固,摸透大部分PHP常用函数,以及模板

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

三.总结

基础有没有对学习php没有太大区别,关键是兴趣。

兴趣是最好的老师,百度是最好的词典。 实践是检验自己会不会的真理。

第七篇、参加PHP培训心得

PHP学习心得3000字

参加PHP培训心得

不逼自己一把永远都不知道自己有多大潜力,决心提升自己的小关决定努力备战五个月PHP培训。他说:“在五个月的PHP培训过程中,我每天都是最早到学校,周六也是雷打不动的来学校自习,甚至节假日都泡在教室学习,我明白想要找到好工作,不光靠优秀的讲师和平台,更重要的是自己的努力。

我要求自己每天要把老师教的内容全部吸收,除了认真听讲以外,我争取课下更多的时间反复的练习代码,认真对待每周的测试和每月的考试,并且对自己的学习进行阶段性总结。

五个月坚持下来,我不仅获得了PHP培训技能,更养成了爱学习、爱总结的,虽然毕业后找工作依然有压力,但是这次我对自己很有信心,面试也是非常的顺利,真是非常感谢兄弟连的平台,感谢兄弟连老师的耐心指导,让我有能力选择并改变自己的人生。

兄弟连IT教育版权所有

第八篇、我学php的学习过程

PHP学习心得3000字

我学php的学习过程

我想成功,我觉得不仅要有梦想,还得坚持,就是坚持的做一件事,那就是学php。 我先把我自己学习PHP的过程做一下概括:

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

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

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

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

这个需要自己多动手,多敲代码。

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

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

这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,任何东西其实都不简单,即使是小吃部的烧饼也不是一下子就会做成的。

我先解释一下我的学习思路。

首先,理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。 在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。

HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的。

掌握静态网页的制作技术是学习开发网站的先决条件。

我假设你目前已经可以完成一个静态页面了。那么咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网 页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的, 说白了,HTML是经过HTML解析器,而 PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为 奇了。

对于PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,即使你理解不了PHP,但是也必须先跟它混个脸熟。

搞清楚HTML和PHP的概念,那么PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算一加一等于几,然后在浏览器输出, 不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜 鸟一个。

高兴一段时间就必须继续努力了,接下来就是学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。

头晕归头晕,目眩归目眩,你不可能吃饭的时候咬了自己一下舌头就从此不吃饭了不是?放下畏惧,继续努力,咱们是来征服它的,而不是被它征服的,振奋起来吧同志。

在一番搏斗之后,你终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过

PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。

学会了PHP和数据库的你,无疑是左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!

等到你发奋努力的学会了用PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。

这个时候的你也许是这种状态:

你会HTML吗?会,我能编好几个大表格排板的网页啦!

你会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!

你会MYSQL吗?会,我会把我的信息在数据库里插入删除啦

那,接下来你该怎么做呢?我觉得,小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。

花了一段时间,你终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。

但是,你可能瞅瞅东,看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?

不要急,可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。

再有条件的话,买本书看看吧,《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)

巩固了自己的知识,熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-

这个时候,你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧,让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。

几天之后你再打开留言本,哎?哇,一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!

你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。

那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?

恩,学!加紧学呀学,学会了这些之后,你又学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...

总而言之,你绝对不会发现你全部都学会了,一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!

我想通过我的一番YY,你也应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^

我知道该怎么学,但是我想更快的学习?

学东西,永远不要求速度,只要努力的学习,到后面你会慢慢的看到效果的。

有一点我可以像你保证,你学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。

不过语法好学,但是怎么用语法来实现,每个人的方式都不一样,几乎是各有千秋。然后借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。

讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力, 如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴,然后大吼:别人可以,我为什么就不可以?

另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说 JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学,也得学会了PHP。然后再学,做任何事情,只要坚持,只要努力,我相信结果都不会太差的。因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。其实很多东西都有它的乐趣,关键在于你的发现,php编程看到千思百滤终于输出正确的那一步不是最快乐的时候吗?看到网站上那赏心悦目的动态页面,成就感不是很大吗!只要有一颗虔诚的心,勤奋进取。