Php小结前段时间在学习php知识,在此,把我学到的一些知识分享给大家,希望能给初学者有一些帮助,高手请绕道,不喜勿喷,谢谢!第一章我们为什么要学习php?如果仅仅是静态网页(内容不需要经常改变)的话,可以不使用php,但如果网页的内容常常更新,这时使用php就能达到很好的效果了,举例如下:HTML中,内容比较固定htmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=UTF-8title测试一下/title/headbodyh2PHPisfun!/h2Helloworld!brI'mabouttolearnPHP!br/body/htmlPhp文件中要达到一样的效果,可以这样写:htmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=UTF-8title测试一下/title/headbody//以下是php语言?phpechoh2PHPisfun!/h2;echoHelloworld!br;echoI'mabouttolearnPHP!br;?/body/html如果涉及到变量(需要变动数据),可以这样写htmlheadmetahttp-equiv=”Content-Type”content=”text/html;charset=UTF-8”title测试一下/title/headbody?php$a=“h2PHPisfun!/h2”;$b=”Helloworld!br”;$c=”I’mabouttolearnPHP!br”;/*(前面是注释符号)$符号表示这是一个变量,上面的变量可以想象成不断变化的新闻内容,因为新闻内容不断更新,这时用到php就很便捷了,如果这时还是只用html语言来编写网站,不说工作量多大,效率也很低下,这就是我们为什么需要学习php语言的最大原因。*/echo$a;echo$b;echo$c;?/body/html这样数据变动就很方便了,所以,php在网站构成上是很重要的。以下图简单说明php的工作原理吧:当你在网站上点击一个链接后,浏览器会发送一个请求(一串地址)给Apache服务器,让它按着这个地址找到浏览器需要的文件,比如说是…/1/2/test.php文件,找到后,如果里面有php语言,就调用php解释器来执行php语言,让他与数据库联系,找到并返回需要的数据,并把这些数据与其他html代码一起形成可以被浏览器识别的代码,我们称这些代码为文档流,当浏览器接收到文档流后,就把他们呈现出来,形成一个网页,这就是我们点击一个链接后跳到另一个网页的整个流程,其中,php语言就是为了处理数据,这很重要,所以我们很有必要学习php语言。附:php和html的区别Html是与php最大的区别是php能够和数据库交互,从数据库中获取数据,而html只能用来展示得到的数据,像一些公司的网页如果不需要和数据库联系的话,就可以完全由HTML,CSS,JAVASCRIPT来写,形成一个静态的网页,但如果涉及到数据的变动,比如说淘宝网,就需要php与HTML结合起来一起大显身手了。HTML中可以套入php语言,在php语言中也可以套入HTML。比如:htmlhead/headbody?phpechop段落/p;?/body/html注释方法不一样HTML注释方法是!----PHP的注释方法有2中一.//这是行注释(用来注释一行的)二./*这是块注释,用来注释好几行的说明这是块注释,用来注释好几行的说明这是块注释,用来注释好几行的说明这是块注释,用来注释好几行的说明*/注意不要有嵌套注释,如/*aaaa/*bbb*/ccc*/,这样的注释会出现问题。第二章函数外部变量和默认值讲解函数内调用函数外部变量,需要先用global进行声明,否则无法访问,这是PHP与其他程序语言的一个区别。例一:?$a=1;functiontest(){echo$a;//这里的$a为局部变量,和外面的$a=1没有关系}test();//这里没有输出结果functiontest2(){global$a;//把$a定义为了全局变量,就能够引用外面$a的值了echo$a;}test2();//这里输出结果为1?函数括号里面的是默认值,如果没有改变默认值的话,就会输出默认值,如果默认值被改变,就会输出改变后的值,大家可以对比一下下面的三个小例子例二:?php$a=1;functiontest1($a=2){echo$a;}Test1();//结果是2因为默认值为2,没有改变默认值functiontest2($a=2){global$a;echo$a;}Test2();//结果是1默认值被改变functiontest3($a=2){echo$a;}Test3(6);//结果是6默认值被改变?Php中的关联变量用法关联参数传递(&的使用),两种方法。例:?//方法一:functiontest(&$a){$a.=和小明;//实际上是$a=.$a=.”和小明”}$b=这是小王;test($b);echo$b;//输出这是小王和小明//方法二:functiontest($a){$a.=和小明;}$b=这是小王;test($b);echo$b;//输出这是小王echobr;test(&$b);echo$b;//输出这是小王和小明?第三章面向对象VS面向过程面向对象?phpheader(Content-Type:text/html;charset=utf-8);//写一个关于人的类,“人”有多种属性,在这里把人的名字,年龄,吃的食物当作“人”这个类里面的属性classpeople{public$name;public$height;public$weight;//构造方法,也就是函数publicfunctionintroduce1(){echo我的名字是.$this-name;}publicfunctionintroduce2(){echo$this-name.身高.$this-height;}}//实例化一个对象,人有多种属性,但那仅仅是人的属性,下面,为这些属性赋值,这样,一个活生生的人就出现了,这就是实例化一个对象(何谓对象?对象的各个属性有特定的值,把抽象的东西具体化,这样,就是一个活生生的对象)$people1=newpeople();$people1-name=小明;$people1-height=180;$people1-introduce1();//结果:我的名字是小明echo'br/br/';$people1-introduce2();//结果:小明身高180$people2=newpeople();echo'br/br/';$people2-name=小王;$people2-introduce1();//结果:我的名字是小王$people2-height=175;echo'br/br/';$people2-introduce2();//结果:小王身高175先把人的各种属性提取出来,分到一个类里面(呵呵,人类人类,就这样出现了),但现在的这些属性仅仅是属性,是抽象的东西,没有给属性具体的值,就像给你说有个人有身高,有体重,谁知道那个人怎么样?如果你说小王身高175,体重120斤,这样一个活生生的人就出现在脑海中,这就是实例化一个对象。面向过程functionintroduce($name){echo'我的名字是'.$name;}functioneat($name,$food){echo$name.爱吃.$food;}introduce(小明);//我的名字是小明echo'br/';eat(小明,肉);//小明爱吃肉echo'br/';?第四章数组1.数组的模式array(“键”=“值”,“键”=“值”,“键”=“值”)例:?php$a=array(a=dog,b=cat,c=horsr);print_r($a);?浏览器输出结果array([a]=dog[b]=cat[c]=horse以上为一维数组array(”键”=array(“键”=“值”,“键”=“值”,“键”=“值”),”键”=array(“键”=“值”,“键”=“值”,“键”=“值”),”键”=array(“键”=“值”,“键”=“值”,“键”=“值”),...)此为二维数组例若$a为二维数组则echo$a[键]为一维数组echo$a[键][键]为一维数组里面的具体的一个值3.打印数组$a=array(0=helloworld);print_r($a);4.打印数组中的特定值$a=array(0=a,4=b);echo$a[4];结果为b第五章php与数据库交互以下是php与数据库交互的详细流程图具体代码详解?php//连接数据库服务器(服务器有ip地址,有帐号,密码,连接的时候需要写出来)$con=mysql_connect(localhost,peter,abc123);//验证是否连接,如果没连接,显示错误信息if(!$con){die('Couldnotconnect:'.mysql_error());}//如果没有数据库对方话,就创建数据库,如果创建成功,显示数据库创建成功,否则显示出错的原因if(mysql_query(CREATEDATABASEmy_db,$con)){echo数据库创建成功;}else{echoErrorcreatingdatabase:.mysql_error();}//在服务器中选择数据库mysql_select_db(my_db,$con);//如果没有表格的话就创建表格Persons$sql=CREATETABLEnews(titlevarchar(15),autorvarchar(15),contentvarchar(15),);//上面只是说了一句话,但还没有执行,下面的mysql_query语句就是来执行上面那句话的,这样,就能创建一个表格Persons了,下面就能对数据库进行操作了mysql_query($sql);//插入数据$sql=insertintonews(title,autor,content)values('这是第一条新闻','小王','这是第一条新闻的内容');mysql_query($sql);//执行上面这句话,就能把数据插入news这个数据表里面了//查找数据$sql=select*fromnews;//这是要选择news这个表里面所有的数据,但现在还没有执行这句话$result=mysql_query($sql);//执行了上面的命令,得到的数据就全部给了$result,而且这些数据是以数组的形式保存的while($rs=mysql_fetch_array($result)){//逐行打印,mysql_fetch_array($result)是表示逐行提取数据,如果到了最后一行,就停止,while表示循环函数print_r($rs);//表示打印一条数组里面所有数据echo'br/';}//更新表格数据$sql=updatenewssettitle='这是新闻标题'whereid=3;mysql_query($sql);//删除数据$sql='deletefromnewswheretitle=这是新闻标题';mysql_query($sql);mysql_close($con);//断开数据库的连接?第六章表单数据传送表单通过表单发送数据一般有post和get方式,下面分别对这两种方式分别进行讲解表单实例:htmlbody