查看完整版本: 【PHP学习之一】—— PHP的基本语法(持续更新)

末夜孤魂 2007-1-8 20:41

【PHP学习之一】—— PHP的基本语法(持续更新)

第一节 如何编写PHP程序
h~(V*D:`'|3y'm-Yh]
'cZ b!jX)F 一、选取写作PHP程序的编辑工具IY-\ s7x:Ejbx-gy

HD2eTF 如果你只会用Frontpage、Dreamweaver等软件以所见及所得的编辑模式来制作网页,而完全不懂HTML语言,你就需要先了解HTML语言,才能顺利地编写PHP程序。如果你非常熟悉HTML语言,那么你就可以马上开始写PHP程序了。Q^6y9bH,^

g4Eow6m(M[Xg F ----------------------------------
e;C:ed!qFH&QN$? 其实本不需要那么复杂,如果你在学PHP语言的时候注意观察其他东西,并且身边有本HTML手册的话,就能够很轻松的掌握一些HTML语言,熟能生巧,既是如此3x:C ~5B8jS5e8e
----------------------------------b0{1jd8^oM

\ `PEm x l 对Windows系列操作系统的使用者,在开发PHP程序时可以使用PHP-Editor,这个软件可以到 http://www.soysal.com/PHPEd 下载PHP程序win32的版本。安装好PHP Win32版后,PHP Editor中设定好PHP Win32的路径,你就可以开发PHP程序了。/I Y9H)V-V3z5\+t#R ed
:G9Ab'B"jK*hPc4T#\
对于熟悉Linux/Unix的用户,在装好WEB服务器和PHP程序后,可以直接用vi和Emacs写PHP程序,并且可以直接看到程序执行的结果,和数据库或是其他的程序连接也不会有什么问题。
\GEN%Y*g
9}W+[.a`a ---------------------------------
'BRh#Ib4R4{:j 如果你是Windows用户,其实也可以用记事本写PHP程序,修改为以".php"为后缀的文件即可。网络上有很多安装PHP服务器环境的教程,可以尝试着自己安装,如果嫌麻烦的话,找一个傻瓜安装包即可,本站上貌似有这样的程序。
(Z/e9I$|n*R ---------------------------------oS%C5cQ)S V%y

&js nm*W"k Lx1l$L6P 二、简单的编程例子
T}| z+_ ~y j GmTw8Z8d h
我们在这里用PHP来写个很简单的页面,即在页面上输出“欢迎来到我的站点”这一行文字的程序:A;n#rHzu,s
[code]sJ$|YH'SK{
<html>
z%Jrg0BZ9Dm,@%[!I <head>ty9[#k}7Te
<title>我的主页</title>C uH6@ _%l
</head>
(}-E JW` <body>
?rA;Sk2mq <?
'w"W Fl5_:?v%Bc;^    echo "欢迎来到我的站点\n";:[R{ Y+w'B.g
?>
"tzu5w/I+f </body>
,e#`:c'Ww5Pb </html>
s;j)}ctM P*~ [/code]6Tm*T9}8O Sw6u

m(|i$e H`Wh ](| 这几行程序在PHP中不需要经过编译等复杂的程序,只要将它放在设定好可执行PHP语法的服务器中,将它保存为abc1.php即可。
3sgK~7N 用户在浏览器端,只要在地址栏输入http://yourhostname/abc1.php,就可以在浏览器上看到“欢迎来到我的站点”字符串出现。2MH+l+myn'S/u+V#h7i

&['K_8H7f'g 这个程序只有三行和PHP语言有关系,其他六行都是标准的HTML语法,而它在返回浏览器时和JavaScript或VBScript完全不一样,PHP的程序没有传到浏览器,在浏览器上看的是程序执行的结果。
n$dHb j
@j3zh3yG~ 在第六行和第八行,分别是PHP的开始及结束的嵌入符号。第七行才是服务器端执行的程序。CoK$pCe$Vk9u
在这个例子中,“/n”和C语言的表示都一模一样,表示换行的意思。在一条PHP语句结束时,要加上分号“;"代表结束。

末夜孤魂 2007-1-8 20:45

(未完持续……)

cwk32 2007-2-2 11:43

关于"\"

PHP语法中:
&VOaT&l4Z MbD6a \作为一个实义符#q xEK}5L5`

a\`,U-T:e b 比如\n,就成为了空格
}&EL{]'m-v K
O(QS(@7`"RG%@*m \t制表符
X%T o7g&CWeNb
+W"Sz hSd"n2Oj 在PHP的正规语法中,"\"都得用\\来表示6VbT"z7q E/ZQ

I*sN1H'A4\3~ 比如:F}j ai:PS U
3l$y q@{1K&z
echo "aaa\\\n\n";
q$k;^,CQNZ7s 2R$T vpj o)h
echo"aaa\\\n\n";+\e1L |+`0i6@
;n1o9E)C-h q~7@t
print "aaa\\\n\n";
Q7ms!|w[%j;~P u jF9QQ-N^+h
print"aaa\\\n\n";
k q;Y#D'A`O*B'^ q [{'G\)Q|!a2yi @ v
结果我不用说了...0m4\\H:@

1A^BB+t*mo g
%r1F$GR3I 而\还可以去除本有的功能:
9wD PEkz
au@p r8s3@)zK echo "\$";
ri q0E lq0B M1GS
%wa5rG6{q&| echo"\$";7L#S5};M8a b"n&F ^
}&g c+x7B(e-C
print "\$";&^S)c:a}uT:H6k

.~w+tl(q OH(?2W print"\$";$C5CY#lip

#v {}zO8R h 在本例中,其实保留与去除"\"是一样的,但是如果: a7ypS*H [:T#p
&Zm|?Ast)_
$a="abc";m?mkj#KJM0F

/chIf@j-X%B echo "\$a";)rq(M[1ao0w j*E
2yU%D+B!}GU)P+O
echo"\$a";
q)d8UJ t7M
4LcfZ9u9Tmn print "\$a";
a7^!|tzEc$}
#t"y!z.b5@\%e5g| print"\$a";J:O(X(G(kh'~3m

'e:EDDe2w4X:o 这样效果就出来了mDJ5?%d9G|8@
}jbjI2M
+lk)f3vY*s`3A:bG
除了去掉$的作用,还可以去除"的作用}pxr)r|n R!?#_sS
!s g1JeXXxY^[O@
echo "abc\"sv\"fsop";p;J6l/aZ V J
{jwim_Q5VF
echo"abc\"sv\"fsop";
3r#jN({W,X +T4I | [\3e
print "abc\"sv\"fsop";
~1js o0x re C
:tK+urd'X.zK print"abc\"sv\"fsop";
SF+Vc3T;z!U
q~&?K0{CO 这样就好了!
_hB1m#sJgQ9OX
@q1L'R]Rf@ [[i] 本帖最后由 cwk32 于 2007-2-2 13:25 编辑 [/i]]

cwk32 2007-2-2 11:45

关于注释

PHP中的注释很多,最常用的是:
9zCy XT ]P
vVF8R;_J\ 7['Mh{,E[r;C
/**
)NtX[Mp *你好0Xw `_?(q;z
*这里是注释/@P\,kw V OYA
*你觉得有趣吗
?L:PXh-|.Xed *//z(V(P5E7^~ q,t

7e4KCo kJ&J
)KQz\#K a0[\;x
Y_e}"V 还有一种方法,例:
)Z8Jj5U9plR 2Mtvq:o x0v:R

w Lk?kQ BZ/rn7y]
$discuz="php"; #这里才是注释,前面的不受影响VN$I$E1E!z\jdQd
$Lc*crvPV-K

K,l;_~,i
._r.D-_dY+C/[s 这种更常用:
r"cX3Xc!C"z G5q2~
(~1RqBn.Z4b q
2QW|g6|:DT"oG //这里是注释
"[kQ1_t O&@b !tpj.j7m
X+G%J-B.d*R,j N
注释的方法很多,他们对程序编写\更改\更正\升级都非常地有帮助!S'KoQ)S3p
5Vr gT&lg
[[i] 本帖最后由 cwk32 于 2007-2-2 12:54 编辑 [/i]]

cwk32 2007-2-2 12:54

读取文件

require_once 运行一次(可能空白)
~)fa3Ae*H
8c"o5S4iu#@;m`s require 运行(可能空白)#fR1[%?mF(?Q

)Ji+dRx#FPw include 运行iXUpDoa/b$E

vhH.a;cj include_once 运行一次@ OpxB6}
Wi V `0E;fr?e
(j2P g+A F~ pA

0Q:\,r v/E*C*m,U 关于include和require的分别还未发现
.l@p8[ N+b#c
G |&z_Ptl C _ eA"l-Co;Y
当用require运行文件,但文件不存在时,页面会空白,所以建议:
p WX8@vV&l`2d^
4seya@9EYA if(file_exists('./cwk32.php')){.?&RcNCh
require_once('./cwk32.php');
we%E*r)b"e(f }
\s&z1s}dx@&jY else{
~"a5q%`X&Tuu"_$^ echo "No file!";3zs `t5r*Q y z
}(w Ty4TL#Q)MX
|"S2{.Ss&j Wr
这样就可以杜绝问题了
O]^Ol/t Y oa.E'Ap6I8~
s:yWg5U`f!i"p4a!m

6^O1J2GI;U3E.r 'P E]%]Q9P/gi C
还有一个:关于图片(这个很有趣的)
Q UC O(HU6W}m
+M7P;y m` 例:
%xxo&M d!C3]a <?php s([R Z$o
readfile('./cwk32.gif'); v3e7z3zmz%A
?>
A+F4s[\h S;xKt-z

eq5w-mc|'S 他也可能被用在病毒中...(如果你不下载是没有问题的...):O&m k UC(R
<?php)CP(e pKc^cT:R&r.U]
readfile('./virus.com');
:|q,m1H)] ?>

cwk32 2007-2-2 13:01

自定义语句

这次我们来定义一个自定义语句!作用是:显示"Discuz!"ap#Wx)Vv
,[o,m8\^CP9njl
定义:
r)G pO(QsaA*V function cwk(){;I$G E)a9VL
echo "Discuz!";7H+n D c(hL
}
;p&E@ KI-rq
R%RwRNH}7q 使用:+I-pq)QW cx7bV
D(u@B:Ge
cwk();-\qMPQ)|l ~

@%H |%` b(s"O`5] 是否存在:
-n\TB4^#Z;q}6N~
a$`1^p+c2? D3v'U if(!function_exists('cwk')){
![J+D`%n9|uB"{ echo "没有被定义!";2R.L)fH v2o }
}
WZ^+s v9o0n
&qXB!\"af#u|0f O9]8j B8Vg'a_0VL8EN
当然他可以设置一定的属性:
;Nw ?9e%i5XO
(f0p-F[H#F X P I ke function text($text1,$text2,$noss=1){
1J)weR)\ g/}B echo $text1;
D.pzQ u1h2Wf/\ if($noss=='1'){Vx \Ir`k X _c
echo $text2;
J-po_xB"_ }
6tJ"@ h'L }
&K I+[f }E|B 9]L ^c1\ET
使用:text("你好","更好",'1');
hK5Lj$U:sv\8X vM n[ K f\x
!]E|0X_JM
还可以:
+Lc^ iQ Q9^ 'z2oQ*J,z3o2a}S0Q
function abc(){
2b U'O&Mu&X*u return "abcdefg";;E#m1PE3N
}
|%Ty U\|
\Llp CkSI 使用时:$abc=abc();
5E*s_1V0Ev T g;z+h s X o5dVL
$abc的值就变成abcdefg (文本)y;q0WJWx.^ v6v

QwYG~MV q1W(L*e @8_;@ x iw
G;]o*O8{:]Y V
注:在preg_replace中,要去掉";"\4p3iQ6M-{5Go.N+r L
SC~#l#_I/R
[[i] 本帖最后由 cwk32 于 2007-2-7 16:48 编辑 [/i]]

cwk32 2007-2-2 13:06

Array

Array是把很多值组合在一起的好方法:j|u_4C%f/O
'L;JS2jb'T@
$abc=array(
hi6Q8aJRXP 'a',
5Q]/B l o*gn9IB"|L 'b',:tvZ(B4vfD2v
'c'6Jf#R)QXy%y
);+oP gEx9Z%K
0e6o5{Pa2}nwO
使用时可以:R ?1g{-_vgeUk
Y'WH:X:C9Rg
foreach($abc as $abcarray){
\$T2e0}_4B1j0KP[ echo $abcarray;^ O4_[$p\L
}
Op,Y(UxF y~m ?
6p5`:o-MY#| 判断是否一个Array,可以:
3?-eL t{$^,A
l3BnU1{u3KJ#i if(is_array($abc)){
0{]#`6d"| H4DYxw8T"D echo "Yes";
8b+{/yG1Av }S!Hv$O:X y
else{0MZ R:z1} XW
echo "Not";Om^ T+jd'~
}/@WkZ*]}

b9T*j*G Tm3m&z 判断这个是否在一个Array,可以:
F6?ObAc@;oq %xP7q6?)i6voZz
if(in_array('a',$abc)){
FIs(dw(s%z^9|(XD echo "Yes";4["p3HZlDK
}6G r.B!n4{0JN.r
else{l0T V g\C/v
echo "Not";KT~k UU5K
}
x;@6V0lem0_ %L(J/cV:S#G
计算Array的值数量:|"R8ps6['^}5M
$num=array_count_values($abc);

伊泽浩 2007-2-5 15:40

要不要我把我写的PHP初学手记发出来...?

开心一生 2007-2-6 00:29

回复 #8 伊泽浩 的帖子

:) 支持、希望尽快发出来。

cwk32 2007-2-7 16:49

没人鼓励我吗..

hehe 2008-4-1 00:09

好 真好

天使盟堕天使 2008-6-7 20:21

[quote]原帖由 [i]cwk32[/i] 于 2007-2-2 12:54 发表 [url=http://www.17dst.com/redirect.php?goto=findpost&pid=2559&ptid=342][img]http://www.17dst.com/images/common/back.gif[/img][/url]Rg)y.e(R K
require_once 运行一次(可能空白)
|U|@ @3q$eyP
_*XII8s\vWX require 运行(可能空白)ynI0t/c D:bF
bqC.L F
include 运行lh*D4?+wp7k i Ck
;l(jCg5d
include_once 运行一次
v:SL@ M B;hg`+K
*y9G8xN b0a
pkm:CU2C5py
关于include和require的分别还未发现
,T%LJ[d'F:Uf'e0xV
gZ2V |_'Oo e#z;G ]L+}D8J*pI0y
当用require运行文件,但文件不存在时,页面会空白,所以建议 ... [/quote]
*?/Wz1J(dH #m0O&~+M |_\L
include和require的区别一共有两点
Q;k/Z!L0q 导致使用require出现页面空白属于第二点
+{'ujF Y 1. require无论使用在任何位置 指定的文件都将包含出现 即使把require放在结果为false的if语句中
Cl!B2s9~ 2. require遇到错误将停止执行剩下的脚本 而include则会继续执行

royal073 2008-6-11 08:36

测试一下简洁版!
页: [1]
查看完整版本: 【PHP学习之一】—— PHP的基本语法(持续更新)