php学习总结
php学习总结1
先来说说学习PHP有什么用处,为什么要学?毕竟学习前应该是对所要学习的东西有所了解,才会更有兴趣去学习它。
学习PHP主要是用来开发web站点,也就是网站,它和asp、java等语言类似,都是运行在服务器上的程序,用来动态地为用户提供网页服务。
学习了它,现实里可以用它赚钱,方法是自己接活儿,或者找PHP程序员的工作,或者你也可以用PHP来自己制作网站,制作了网站后,当然也可以赚钱。
如果感觉自己在学习php方面无从下手,那么有一套很好的教程可以让你摆脱这种心理,你去看看,有一套张老师讲的教程,循序渐进而且有系统。所有的都是从实例出发,最重要的是免费。
再有一点重要的是,在学习前最好有个目标,就是你学这个你想用来做啥,比如我就先构思个网站,然后在学习中解决各类问题。
另外最重要的就是要有毅力
我英文不好能学习吗?回答是YSE
我数学不好能学吗?回答是YES
我没有基础看这个视频学习能学吗?回答也是YES
我没耐心能学吗?回答是NO
学习php只是一部分,html、css、js是都要学的,而且是必须的,但是这些东西尤其是js很像php,其它的就太简单了,没什么难的。如果更好的学习建议可以先看看些 HTML 和 SQL 的基础。另外w3school也是个不错的地方,里面有详细的手册和资料。
开始学习的时候,尤其是最开是下手编程很艰难,可以上网找些源代码来琢磨,但是一定要自己动手写,不能光看不练。PHP最大的优势优势就是源代码十分多,不像JSP那样很多封包的,大家一定要好好利用啊。
其次,就是大家可以加些群和论坛,有问题和高手请教下,说不准会茅塞顿开,一个人闭门造车还是很累的。俗话说,独乐乐不如众乐嘛!以上只是个人初学php的感受,希望能对大家有所帮助。
php学习总结2
虽然PHP并非目前最火爆的编程语言,但随着信息社会的发展,大量的PHP编程人员近期在剧增,再加上IT行业的崛起,让学习编程的人能得到一个很好的就业机会,这时候我们想要快速地学习这门技术,且能更好的融入这个行业,我们下面应该来学习以下的一些技巧。
其实我们想要成为一名真正的PHP程序员,并非学好PHP编程语言就行了,还需要了解更多的相关只是。
而我们要学习PHP第一步就是要学会如何在自己的电脑上安装PHP的运行环境。
PHP程序员需要装备的技能有:
MYSQL只有一门好的开发语言而不懂得数据库,我们依然是寸步难行的!还好,我们有一样开源、小巧的MYSQL!对于一个web开发人员来说,不能仅 仅懂得(填/删/改/查—//update/select),为了让我们的网站跑的更快、更顺畅我们还要懂得mysql的优化。没错!这个时候,视图、索引会帮你完成你想要的结果。
Apache 你要学会配置Apache
Javascript“后端语言群雄逐鹿,前端语言唯我独尊!”没错,这就是Javascript在前端语言地位的真实写照!想让网站拥有绚丽的视觉效果,就离不开 Javascript。
Ajax 想让网站拥有良好的客户体验,就离不开Ajax!纵然有时候,YUI,JQuery等就Javascript框架会帮助我们提高效率,但是,他们的基础仍是Javascript!
算法、数据结构按照常理来说,算法是PHP程序员的“灵魂”。对一名合格的程序员的第一要求的往往就是过硬的算法基础。
要都精通上述技能,很难。当然,你是PHP程序员,主要是负责PHP编程。但是你要明白,你一个后台程序员,为了能开发出自己满意网站,还必须跟前台沟通。并且你要知道,你就是开发团队的核心,所以,无论如何都要学习上述技能。
OK,上述技能都懂七七八八了,这样就成了真正的PHP程序员了么?又错了。
你还必须要有程序员必须有的品质。
团队精神和协作能力。通常项目开发都是一个团队开发,所以这是一个
学习和总结的能力。因为互联网的技术日新月异,假如不能学习掌握新技术,那么就要遭到淘汰。这是最最重要的硬性要求。
文档习惯。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。
规范化,标准化的代码编写习惯。代码具有良好的可读性,是PHP程序员基本的素质需求。
需求理解能力。程序员需要理解一个模块的需求,性能需求指标中,稳定性,并访支撑能力以及安全性都很重要。
测试习惯
软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。
作为一名合格的PHPer 首先就是对PHP的热爱,俗话说:“要做好一件事,要先去理解他,然后爱他。”PHP是一种很美妙的开发语言,你不需要再为定义一个变量的类型而犹豫不 定,PHP会自动判断;你不需要在得到一个表单数据而声明N多的函数,一切都交给PHP吧!PHPer是一个极具挑战性的工作,so,如果你热爱挑战,喜 欢有挑战性的工作,如果你已经准备好了,那么就加入吧。
php学习总结3
自从上周开始,我受其他中心邀请,前去给大四学生要做为期一个半月的PHP强化培训讲师,对我来说虽说很简单,但仍不可掉以轻心,在第一次和这个大四学生们交流时,我发现他们的计算机基础知识真的很差,有的学生连基本的操作系统都不会做。当初着实让我头痛了一把,一个半月,要把PHP课程讲完,还要求每个学员都能独立完成网站的开发,最主要的是他们没有基础。
在第二天正式上课之前,我把我以前给自己学生培训的大纲做了很大的修改,决定以他们的实际情况为出发点,用最快的时间去讲在学习PHP之前的基础知识,并且用幽默快乐的课堂气氛来提起同学们的学习兴趣,通过这几天的讲课,感觉他们每个学员都撑握的不错,每个学员都很努力地去学习,用他们的话说,在我讲这几天,比大学里三个月讲的内容还多,他们接受起来很快,不愧是大学生,所以我现在有信心能把他们教好。我不敢保证100%,但80%能成为网站程序员是没有什么问题。
还有一个月的课程要给他们讲,所以我除了忙自己的公司外,还要兼着给大学生们讲课,虽然我自己累点,但我能看到希望,最近有不少想学网站,学SEO学员咨询,觉得我的技术还是很牛的,其他也没有什么,我用十年的时间学习和工作都是以网站建设,网站维护为主的,只是近年才开始做讲师,但对我最大的收获,就是学员学有所成。
php学习总结4
在来这里参加PHP培训班之前,我自学了五个月的PHP,天天在琢磨课本上的那些看不懂的代码,照着书上写了很多代码,可测试运行,总是报错,可又不知道自己错在什么地方。心里非常焦躁,也受到了打击。后来经朋友的介绍北京恒博教育的课程是以实用为主,除了讲解理论知识外,更注重的是实际应用,老师们都是三十岁以上,在网站建设行业里有十几年工作经验了,我那朋友也是在这里学习的,于是我来到了北京那个恒博教育网站培训基地并且参加了由黄老师主讲的PHP培训课程,黄老师先给我们讲了学习PHP的重点、学习PHP的方法、学习PHP的步骤。感觉和课本上大不一样,他是先用一两天的时间讲语法基础,然后就直接讲PHP和数据库的操作,等大家会做简单的网站之后,再接着讲一些常用的函数,和更高级的用法,用黄老师的话说:“先让大家了解整个网站的制作,然后再讲更详细的,比如一些系统函数,这样学员在以后的学习中知道学的那些点怎么应用到网站开发中来”。
虽然在这里上课的时间比大学的多,而且紧凑,但在这里看到了大学里没有的学习风气,在浓厚的学习气氛中大家也把黄老师的讲解内容完成的很好,我也从黄老师的讲解中学到了很多有用、有趣的知识,授课内容也让我耳濡目染。
他根据我们的实际情况,告诉他了一些重点、一些方法、指导我们进行实战开发,开发项目由小到大,由简至难,慢慢深入。将所有重点理论,全部贯穿于项目的开发之中。这样理论记的深刻,项目开发也水到渠成。结果一个月不到,CMS会做了,还做了一个自己的博客,另外还参与了一个网上商城的开发。
一个人自学,是孤独的、无助的。在我们PHP培训班,你随时可以询问老师你遇到的问题。也可以和同学们随时交流问题和心得,现在想想,以前选择自学PHP有点是在浪费时间,会走很多的弯路,常常在自学中遇到问题,可自己很难能解决,再加上某些课本上的误导,(后来在黄老师的指导下才知道课本上有很多的地方是错误的)更是困难。
现在我已经工作两个月了,薪水还是可以的,在此我奉劝各位想自学技术的同胞们,最好是找一个专业的老师带着你,否则真的自学很浪费时间。
php学习总结5
我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:
我的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。
我先把我自己学习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成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。
这个时候的你也许是这种状态:
你会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#的主意,或者有人说JA很强,这个时候的你绝对不能动摇,哪怕你真想学,也得学会了PHP。然后再学,见异思迁是最不可取的,狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起,没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,
因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。
php学习总结6
其实我也是一样很新的新手,上PHP100学习视频并在论坛里学习其实也就是一个月前的事.虽然早在8月份花过一个星期看完w3school的PHP教 程,了解了许多PHP知识.但始终是缺乏一个与众多朋友学习和交流的平台,所以一下子在几周后又把PHP又忘得七七八八了,有幸在10月尾了解到了 PHP100视频和论坛,不仅可以系统地学习下PHP,更可以和很多朋友一起学习成长这更是件好事.
在php100视频中学到了许多,而 论坛中看帖和回帖也更让我巩固了学习的知识并让我学到了很多,这不仅不会让我又把PHP知识快速忘记(因为工作中用是ASP,而PHP不会在工作中用,所 以忘得快),反而在取得进步的同时,我也能帮助一些人,这也是一样是学习胜利的过程,我喜欢并享受其中.
以下是我上论坛以来的回复总结,将不断持续总结.希望有利于与我一样的新手一起成长.
首先来个,题前语:
任何的学习,都需要自信,再新的新手也应该抛弃心中的恐惧,有时关键在于你心平下来,踏入学习后,你将慢慢化开迷惑,获得信心,赢取自信!让我们共同进步.
----------
==========
Undefined index问题
是运行的时候出现类似:Notice: Undefined index: action in D:wampwwwadd.php on line 3 的
原因:
可详参见此帖:http://bbs.php100.com/read.php?tid=15843&page=1#138857
是 php 配置的事情
这个错误是因为 php 页面中的`变量没有初始化而导致的!
可以通过设置PHP.INI搞好,
也可以在变量前面 加上一个 @ 就可以解决这个地方的问题了!
如这里指示第三行
Notice: Undefined index: action in D:wampwwwadd.php on line 3
那么找到第3行加上@
if (@$_GET['action']=='save') {
你再运行下,发现还有提示,但行号变了,那么你再在行号对应的未初始化的变量前加@即可解决
一劳永逸的办法是在 php.ini 中的 error配置下错误显示方式
估计你里边的error_reporting=E_ALL
把error_reporting这个设为
error_reporting = E_ALL & ~E_NOTICE
别忘了改动后,重启下APCHE服务器,才会生效
这样,以后就不用在这种情况下加@了
-
具体参考下这个设置下http://edu.codepub.com/20xx/0617/6463.php
----------
==========
遇到页面明确提示你错误的,并有显示如何错的,建议先把语句复制部分重点词句或全部语句到百度或
google,更快速让在你排查错误找到方法.其实这也是一种高效有益的学习方法,毕竟在工作中,遇到些没
遇过的新问题,有时都需要借助网上的资源给自己灵感和助力,本人就一天不下几十次用百度搜索.
如程序中遇到诸如含提示:
显示的错误为:
Parse error: syntax error, unexpected $end in D:wampwww estlist.php on 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下情况具体没
用过,不知道,还望高手告知.
----------
==========
针对多数人的留言板课程中许多问题(如, into存不进数据问题)的总结:
1.检查你数据库表的结构是否正确,如id是否设为自增
2. into语句是否正确,如单词是否正确, 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学习总结7
$_GET[string] 的介绍,Isset() 和empty()的介绍,数据库数据类型,
1.$_GET[string]的介绍
2.$_GET[string]
他和$_POST 的区别在于,当form method=“get”的时候,用来传值,
点击下submit后,URL转到了接受值的php页面。但是URL 不是这个页面的--1.php。而是自动生成的URL。
显示的是下面的URL:php?控件名(myname是文本框的控件名)=用户输入的值。
所以说用这个不安全。
3.Isset() 和empty()的区别
Isset()检查变量值是不是设立了。 Check the variable is set and exists.
Empty()检查变量值是不是空。 Check if the variable has contents.
对于empty(),空有7种可能,Null,0,‘’(空字符串),array(),false,遇到出现上面的7种情况返回true。
两个返回的都是布尔值。
一般情况下用empty()检查表单中户输入的是否是空值。
用if(!Empty($var))检查;
。 "0",0.0
primary key 主键
4. MYSQL 命令:create table
命令:注意 column name column type中间没有逗号,只是空格。
看下格式
问题: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表示小数点后的位数。
m is the total number of digits and n is the number of digits after the decimal point. Say, you want to store some numbers like the format 9999.9099999. Here the value of m is 11 and that of n is 7.
DATE - A date in YYYY-MM-DD format, 例如: 1973-12-30.
DATETIME -in YYYY-MM-DD HH:MM:SS 1973-12-30 15:30:00. TIMESTAMP - This looks like the previous DATETIME format, only without the hyphens between numbers; 3:30 in the afternoon on December 30th, 1973 would be stored as 19731230153000 ( YYYYMMDDHHMMSS ).
TIME - Stores the time in HH:MM:SS format.
YEAR(M) - If the length is specified as 4, YEAR can be 1901 to 2155. The default length is 4.
问题:If.。。Elseif。。。Else
else ifallows us to keep evaluating using if statements as many times as needed. 可以把elseif看做是另外一个if。
Use the if....elseif...else statement to select one of several blocks of code to be executed. Syntax
1 if (condition)
23code to be executed if condition is true;
4
5 elseif (condition)
6
7code to be executed if condition is true;
8
9 else
10
11code to be executed if condition is false;
问题: php连接mysql()
回答:四个函数:
mysql_connect(),mysql_select_db(),mysql_query(),mysql_close().
相关语法: mysql_connect(),连接服务器。
resource mysql_connect(string $server,string$username, string$password). 返回值:指定服务器的link identifier。或者未成功就是false。
然后用这个连接mysql中的数据库
bool mysql_select_db( string $database_name [, resource $link_identifier = NULL ] .
Mysql_select_db() 用于连接mysql服务器上的数据库。下面的mysql_query()用来在这个数据库中执行。前面$a=Mysql_select_db()错误。 mysql_query()语法:resource mysql_query( string $query [, resource $link_identifier = NULL ] ) 用于给数据库发送命令。返回resource,是个结
php学习总结8
调试/*………*/ //…….#..........
插入时考虑清楚字段类型避免插入后出现缺值,乱码
@ 屏蔽错误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);
}
?>
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
";
}
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学习总结】相关文章:
1.PHP 学习教程
3.学习php的心得
4.php学习心得