仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1285|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP3中文文档(续3)

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:21:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。中文   任何PHP剧本言语都是利用一连的语句创立的。一个语句可所以一个赋值语句,一个函数挪用,一个轮回,一个前提语句乃至一个不做任何工作的语句(一个空的语句)。语句常常利用分号(;)开头。别的,使用卷撑持可以把一组语句紧缩从而使语句可以被构成语句组。一个语句组是一个关于本身的声名。分歧的语句类型将在本章被描写。

 

常量
    PHP界说了一些常量供应给布局使它可以在运转时界说更多的类型。常量和变量非常的相似,然而他们在语法上有些微的分歧。

    被预界说的常量是__FILE__ 和__LINE__,在处置他们时,会发明他们与文件名和行号符合合。请参考以下示例:

 

Example 6-1. Using __FILE__ and __LINE__ //利用__FILE__ 和__LINE__

<?php

function report_error($file, $line, $message) {

echo "An error occured in $file on line $line: $message.";

}

 

report_error(__FILE__,__LINE__, "Something went wrong!");

?>

 

    您可使用函数define() 和undefine()来界说其它的常量。

 

    Example 6-2. Defining Constants //界说常量

<?php

define("CONSTANT", "Hello world.");

echo CONSTANT; // outputs "Hello world."

undefine ("CONSTANT");

?>

表达式

    表达式是PHP最主要的基石。在PHP中,您所写的几近一切的内容都是表达式。最复杂同时也是最准确的界说一个表达式的办法是“任何内容都有它的值”。

 

    立即进入大脑的复杂例子是:常量和变量。当您输出“$a = 5”,您就把值“5”赋给了变量“$a”,分明的,取得这个数值5,或说’5’是一个值为5的表达式(在这个例子中,’5’是一个整数常量)。

    赋值今后$a的值是5, 因而假如你如许写$b = $a,你它同$b = 5所表达的意思是一样的.换句话说,$a是一个值为5的表达式.假如一切任务正常,这些将是所产生的一切.

    再略微庞杂一点的表达式的例子是函数(function) .例如,思索以下上面的函数:

 

function foo () {

return 5;

}

 

    假定你熟习函数的概念(假如你不熟习,看一下第四章),你能够假定$c=foo()从实质上说同$c=5是分歧的,你是准确的.函数是以他们的前往值为值得表达式.既然foo()前往5,表达式’foo()’的值就是5。普通来讲,函数不会仅仅前往一个态的值,他们普通都盘算一些器材。

    固然,PHP外面的值不用须是整数,而且常常他们不是PHP撑持三种标量类型的数值:整数,浮点数,和字符串。(标量值是不克不及被再分为更小局部的数值,例如它不克不及是数组)。php也撑持两种分解类型的数值:数组和对象。每种数据类型都能被赋值给变量或经由过程函数前往。

    迄今为止,PHP/FI 2的用户不该该感到就任何改动。但是,PHP把表达式带入了一个更深的条理,好像很多其它言语所作的一样。PHP是一种面向表达式的言语,几近每件事都是一个表达式.思索一下咱们已处置过的表达式“$a=5”.可以十分轻易的看出这里包括了两个值,常量’5’的值,和$a的值。$a的值也已被更新成5。然而现实是这里还有一个额定的值包括个中,而且这个值就是赋值语句自己.这个赋值语句自己盘算所赋值的数值,在这个例子中是5。实践上,它意味着“$a=5”,不论他做甚么,是一个值为5的表达式。因而,一些像’$b=($a=5)’的表达式,实践上同’$a=5;$b=5’(分号代表表达式的停止)是一样的.既然赋值语句被以从右到左的按次解析,你还可以如许写’$b=$a=5’。

    另外一个很好的表达式的例子是前和后递增量的偏向性.PHP/FI 2的用户和很多其他言语的用户或许对符号(variable(变量)++和variable--)十分熟习.这些就是递增和递加符号.在PHP/FI 2中,语句’$a++’没有任何值(不是一个表达式),而且因而你不克不及给它赋值或以任何体例来利用它.PHP经由过程开展这些表达式增强了递增(increment)/递加(decrement)的才能,像c言语中一样.在PHP中,有两种递增模式-前递增和后递增.这两种递增实质上都是使变量加1,而且对变量的影响都是一样的.他们的区分是递增表达式自己的值.前递增的模式是’++$variable(变量)’,盘算递增值(PHP 在读出它的值之前递增变量的值,因而叫前递增)后递增的模式是’$variable++’,在变量递增前盘算$variable的原始值(PHP先读出变量的值,然后再递增,因而叫后递增).

    表达式的最初一个例子咱们将处置组合操作符赋值表达式.你已晓得了假如你想将变量$a的值加1,你可以复杂的写成’$a++’或’++$a’.然而假如你想加的数值不只是1呢,例如3?你可以屡次利用’$a++’,然而很分明如许不是一个无效的,简约的体例.凡是的办法是如许写’$a=$a+3’. ’$a=$a+3’盘算变量$a加3后的值,而且被从头赋值给了变量$a,终究的了局是变量$a的值加了3.在PHP中,好像像C一样的其它一些言语,你可以用更冗长的体例来做这些.给变量$a确当前值加3可以写’$a+=3’.这个表达式准确的意思是”读出$a的值,加3,然后把它赋值给$a”.除加倍简约和简单外,如许的语句履行起来速度更快.表达式’$a+=3’的值,像一个正则赋值语句的值.是被付与的值.注重它不是3,而是$a+3的组合的值(这是一个被赋给$a的值).任何二元操作符都可以被用来组分解复合赋值操作符.例如,’$a-=5’($a=$a-5),’$b*=7’($b乘以7),等等.

    假如你没有在其它言语中加过的话,你会以为上面的表达式看起来十分奇异.这就是三元前提算子:

    $first ? $second : $third

    假如第一个子表达式的值为真的话(非0),那末他的第二个子表达式将被盘算,而且这就是全部前提表达式的值.不然,第三个子表达式将被预算,了局作为全部前提表达式的值.

    上面的例子可以匡助你大体上了解前,后递增和表达式.

function double($i) { return $i*2;}

$b = $a = 5; /* 把5赋值$a和$b */

$c = $a++; /* 后递增, 把$a的原始值(5)赋值给$c */

$e = $d = ++$b; /* 前递增, 把经由递增操作的$b的值(6)赋值给$e和$d */

/* 这时候,$d和$e都等于(6) */

$f = double($d++); /* 把$d的原始值(6)加倍,然后赋值给$f.$f等于(12)*/

$g = double(++$e); /* 先把$e履行递增操作,然后加倍, 2*7 = 14赋值给$g*/

$h = $g += 10; /* 起首,$g加10,而且终究了局是24.将这个值赋值给$h,而且$h终究的了局也是24.*/

    在本章的一入手下手,咱们就说过”咱们将描写各类类型的语句”.表达式可以成为语句,但是,并非每个表达式都是一个语句.既然如许,一个语句具有’expr’’;’的模式,一个表达式加上一个分号.在’$b=$a=5;’中,$a=5是一个无效的表达式,然而他不克不及由他本人组成一个语句.然而’$b=$a=5;’倒是一个无效的语句.

    最初一个值得提起的工作是一个表达式的值的真假.在良多事务中,次要在前提履行和轮回中,你对表达式切实其实切的值其实不感乐趣,你仅仅对他是不是觉得着 TRUE(真)或FALSE(假)(PHP没有专门的boolean类型).在PHP上钩算表达式的真假的体例同perl十分类似.任何非零的数值都是TRUE,零是FALSE!注重正数也非零,所以也为真!空字符串和字符’0’为FALSE;一切其他字符串为TRUE.关于非标量的数值(数组或对象)-假如值没有包括任何元素,则被以为为FALSE,不然为TRUE.

    PHP供应了一个完全并且壮大的表达式东西,而且完整申明他已超越了本手册的局限.关于表达式是甚么,你怎样才干机关一个无效的表达市,下面的例子应当给了你一个很好的提醒.贯串这个手册的其他局部,咱们将用’expr’代表无效的PHP表达式.

 

IF
    IF布局是任何言语中最主要的特征之一,PHP也包含了它。它答应停止前提判别同时履行响应的法式段。PHP中IF语句的特征和C是非常相似的:

if (expr)

statement

    在对该表达式片断的描写后,会判别表达式的值是不是为真。假如表达式的值为真,PHP会履行该语句,假如该值为假,那末PHP将会跳过该语句。

 

    接上去的例子中假如$a比$b大,那末将显示“a is bigger than b”。

if ($a > $b)

print "a is bigger than b";

 

    凡是的情形,是用户但愿利用不只一条语句被有前提的履行。固然,在这里没有需要对每个语句利用IF前提判别。用户可使用一组语句来完成这个功效。例如,假如$a比$b大,那末上面的代码将显示“a is bigger than b”,同时将$a的值赋给$b。

if ($a > $b) {

print "a is bigger than b";

$b = $a;

}

 

    IF语句可以嵌套在另外一个IF语句当中,使用这一点,用户可以依据分歧的情形履行法式中分歧的局部。

 

ELSE
    凡是,能够在前提合适时但愿运转某个语句,而在前提不合适时但愿运转另外一段法式。这就是ELSE语句的感化。ELSE扩大了IF语句的感化,当前提为假时,ELSE前面的语句将被履行。例如,接上去的法式段将在$a大于$b的时分显示“a is bigger than b”,在其他的情形下显示“a is NOT bigger than b”。

if ($a > $b) {

print "a is bigger than b";

} else {

print "a is NOT bigger than b";

}

 

    ELSE语句其实不仅仅起到在IF表达式值为假的时分履行语句的感化,假如在它前面接上IF的话,就成了ELSEIF语句,利用它可以进一步的剖析假的情形(见下文)。

 

ELSEIF
 

    正如它的名字所暗示的,ELSEIF是IF和ELSE的组合。和ELSE一样它扩大了IF语句对FALSE(假)的处置。然而和ELSE纷歧样的是,ELSEIF将已为假的前提再停止一次判别,并依据判别的了局停止处置。例如,以下代码在$a>$b的情形下将显示“a is bigger than b”,当$a不大于$b的时分就再停止一次判别,假如$a==$b,将显示“a is equal to b”,假如$a<$b将显示“a is smaller than b”。

if ($a > $b) {

print "a is bigger than b";

} elseif ($a == $b) {

print "a is equal to b";

} else {

print "a is smaller than b";

}

 

    在统一个IF语句中可以有多个ELSEIF语句。第一个ELSEIF表达式(if any)假如为真,那末将被履行。在PHP3中,您也能够写成“else if”(利用两个词)同时后果和利用“elseif”(一个词)是一样的。他们的言语仅唯一些微的纷歧样(假如您熟习C言语的话,您会发明这个纷歧样和在C中相似)然而终究他们的了局是完整一样的。

 

    ELSEIF语句仅仅在IF语句或前一个ELSEIF的表达式为假,同时以后的ELSEIF语句表达式为真的情形下履行。

 

IF语句的交互语法:IF().. ..ENDIF
    PHP3供应了一种分歧的办法在IF语句中创立语句组。这类体例在您将HTML嵌套进IF语句中十分罕见,然而您可以将着种办法使用就任何地位。除利用{}以外,IF表达式可以跟从一个冒号,一个或多个语句,然后利用ENDIF开头;请注重以下的例子:

 

<?php if ($a==5): ?>

A = 5

<?php endif; ?>

 

    在下面所示的例子中,使用交互语法,HTML语句“A = 5”被嵌套进了IF语句当中。这个HTML语句会在$a为5的时分被显示。

    这类交互语法也能够使用在ELSE和ELSEIF语句当中。接上去的例子是利用交互格局的IF、ELSEIF和ELSE语句。

if ($a == 5):

print "a equals 5";

print "...";

elseif ($a == 6):

print "a equals 6";

print "!!!";

else:

print "a is neither 5 nor 6";

endif;

 

WHILE
    WHILE轮回是PHP3中轮回的一个复杂例子。它和在C中的体现完整一样,WHILE语句根基的布局以下所示:

    WHILE(expr) statement

 

    WHILE语句的的寄义是非常复杂的。它告知PHP在WHILE表达式为真的情形下重复的履行嵌套的语句。表达式的值在每次轮回入手下手的时分被反省,所以即便这个值在履行嵌套的语句时被更改了,履行进程将不会被终止,直到停止该次轮回为止。有些情形下,WHILE表达式的值在入手下手就是假,那末这些嵌套的语句将一次也不会被履行。

    和利用IF语句相似,您可以在统一个WHILE轮回中利用多个语句作为一个组,利用{ }或相似于下文的语法:

    WHILE(expr): statement ... ENDWHILE;

    鄙人面的两个例籽实现的功效是不异的,即打印了从1到10的一切数字:

 

    /* example 1 */

$i = 1;while ($i <= 10) {

print $i++; /* the printed value would be

$i before the increment

(post-increment) */

}

 

/*example 2 */

$i = 1;

while ($i <= 10):

print $i;

$i++;

endwhile;

 

DO..WHILE
    DO..WHILE轮回和WHILE轮回是非常相似的,除真值反省是在每一个轮回进程最初停止的外。这里最次要的分歧就是关于DO..WHILE轮回,它和尺度的WHILE轮回纷歧样,它的第一个轮回进程老是会被履行的(因为真值反省是在最初被履行的)。尺度的WHILE轮回中的第一个语句纷歧定被履行(因为真值反省是在轮回入手下手时停止的)。

 

    这儿是利用DO..WHILE轮回语句的一个例子:

$i = 0;

do {

print $i;

} while ($i>0);

 

    上文的轮回仅仅会被履行一次,在第一次轮回履行终了以后,反省表达式为假($I其实不比0大)此时轮回就会被终止。

 

    初级的C言语利用者对利用DO..WHILE轮回的分歧的地方会有很深的了解,为了答应在代码段的履行过程当中终止履行,可使用将他们到场DO..WHILE(0)语句中,再利用BREAK语句的办法。上面代码段申明了这一点:

do {

if ($i < 5) {

print "i is not big enough";

break;

}

$i *= $factor;

if ($i < $minimum_limit) {

break;

}

print "i is ok";

...process i...

} while(0);

 

    假如您对这些都不是很分明的话,也不用忧虑。您可以在不利用这些特征的情形下编写出很强无力的代码。

 

FOR
    在PHP中FOR轮回是最庞杂的轮回。它的特征和它在C言语中的体现相似。FOR轮回的语法以下:

 

    FOR (expr1; expr2; expr3) statement

 

    第一个表达式expr1将在轮回入手下手时无前提的被求解履行;

    在每个轮回入手下手的时分,第二个表达式将被履行。假如它的值为真,则该轮回将持续上面嵌套语句的履行。假如它的值为假,则轮回停止;

    在每一个轮回的最初第三个表达式将被履行。

    任何一个表达式都可所以空的,当表达式二(expr2)是空的时分,意味这这个轮回运转的次数将是不肯定的(PHP和C一样默许该表达式为真)。这类做法其实不象您想象的那样没有效,由于在有些情形下您能够但愿利用带前提的BREAK语句来代替FOR的真值判别来作为终止轮回的办法。

 

    注重上面的几个例子,一切的这些语句显示了从1到10的数字:

 

/* example 1 */

for ($i = 1; $i <= 10; $i++) {

print $i;

}

 

/* example 2 */

for ($i = 1;;$i++) {

if ($i > 10) {

break;

}

print $i;

}

 

/* example 3 */

$i = 1;for (;;) {

if ($i > 10)

{ break;

}

print $i;

$i++;

}

 

/* example 4 */

for ($i = 1; $i <= 10; print $i, $i++) ;

 

    固然,看上去第一个例子最好(或是第四个例子),然而您将发明在很多场所利用空表达式的FOR轮回是非常便利的。

 

    在FOR轮回中PHP也撑持交互的“冒号语法”。例如:

    FOR (expr1; expr2; expr3): statement; ...; endfor;

 

    其他有FOR语句的言语常常利用该语句来处置数组。在PHP中利用WHILE语句和list()和each()函数来做这件工作。请参考这些函数相干的例子。

 

BREAK
    BREAD 跳出以后的轮回体,提早停止轮回.

$i = 0;

while ($i < 10) {

if ($arr[$i] == "stop") {

break;

}

$i++;

}

 

CONTINUE
    CONTINUE停止本次轮回,跳到轮回体的入手下手处,接着停止下一次轮回的剖断.

while (list($key,$value) = each($arr)) {

if ($key % 2) { // skip even members

continue;

}

do_something_odd ($value);

}

 

SWITCH
    在实践成绩中经常需求用到多分支的选择.你可使用多重嵌套的IF语句来处置,但假如分支较多,则嵌套的IF语句层数多,法式冗杂并且可读性下降.PHP中供应SWITCH语句来直接处置多分支选择.

    上面的两个例子使经由过程两种分歧的体例来完成统一件事,一个利用了一系列的IF语句,别的一个利用了SWITCH语句:

 

/* example 1 */

 

if ($i == 0) {

print "i equals 0";

}

if ($i == 1) {

print "i equals 1";

}

if ($i == 2) {

print "i equals 2";

}

 

/* example 2 */

 

switch ($i) {

case 0:

print "i equals 0";

break;

case 1:

print "i equals 1";

break;

case 2:

print "i equals 2";

break;

}

 
  学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...
小女巫 该用户已被删除
沙发
发表于 2015-2-4 12:04:46 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
活着的死人 该用户已被删除
板凳
发表于 2015-2-7 12:06:37 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
蒙在股里 该用户已被删除
地板
发表于 2015-2-8 21:33:46 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
变相怪杰 该用户已被删除
5#
发表于 2015-2-9 23:44:11 | 只看该作者
实践是检验自己会不会的真理。
金色的骷髅 该用户已被删除
6#
发表于 2015-2-28 08:44:28 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
深爱那片海 该用户已被删除
7#
发表于 2015-3-2 19:48:15 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
再见西城 该用户已被删除
8#
发表于 2015-3-4 03:13:48 | 只看该作者
做为1门年轻的语言,php一直很努力。
小妖女 该用户已被删除
9#
发表于 2015-3-11 05:40:56 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
第二个灵魂 该用户已被删除
10#
发表于 2015-3-11 08:07:01 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
因胸联盟 该用户已被删除
11#
发表于 2015-3-11 18:17:06 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
冷月葬花魂 该用户已被删除
12#
发表于 2015-3-14 15:20:38 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
admin 该用户已被删除
13#
发表于 2015-3-21 10:58:16 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
愤怒的大鸟 该用户已被删除
14#
发表于 2015-3-27 09:09:48 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
柔情似水 该用户已被删除
15#
发表于 2015-3-29 16:16:21 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
老尸 该用户已被删除
16#
发表于 2015-4-13 12:00:41 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
若相依 该用户已被删除
17#
发表于 2015-4-14 16:04:25 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
兰色精灵 该用户已被删除
18#
发表于 2015-4-21 00:32:51 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
简单生活 该用户已被删除
19#
发表于 2015-5-2 18:52:58 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
海妖 该用户已被删除
20#
发表于 2015-6-15 01:50:58 | 只看该作者
当然这种网站的会员费就几十块钱。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 17:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表