网站地图    收藏   

主页 > 后端 > php资料库 >

php语法大全

来源:未知    时间:2014-12-04 23:40 作者:xxadmin 阅读:

[导读] 《谈谈HTML语法》一文,我已经介绍了基本的HTML语法。可以编出一个静态的Web页,可动态交互信息是很重要的。如一些网站的会员制的会员注册、登录都需后端程序的运行。很多网站所...

《谈谈HTML语法》一文,我已经介绍了基本的HTML语法。可以编出一个静态的Web页,可动态交互信息是很重要的。如一些网站的会员制的会员注册、登录都需后端程序的运行。很多网站所用的CGI程序主要用Perl、ASP、Java、PHP编写,而我们所要用的就是PHP。它是完全免费的,这就要感谢那些默默无闻的编程人员了。
    PHP的结构类似于C语言,这可是应证了C语言里提的“一处学习,到处编程”。相信学过C语言的人可很容易上手PHP的。还是先介绍一些PHP语法吧。本文适合初学者学习。 
    PHP与C语言也有一些差别,或者说在某种程度上可能比C语言更为灵活。在C语言中,变量要先定义,才能使用。而PHP中变量则不需事先定义,直接使用即可。对于变量的类型,在赋值时自动生成。PHP变量的类型分为:整数(int)、双精度型(double)、字符串(string)、数组(array)、对象(object)。 
  整数大小超出其范围后,自动转化为双精度型,其值范围如下表:


┌─────┬─────┬──────┬────────────┐ 
│ 声明类型 │长度(位)│长度(字节)│    值的范围     │ 
├─────┼─────┼──────┼────────────┤ 
│  int  │  32  │  4   │-2147483647~2147483647 │ 
├─────┼─────┼──────┼────────────┤ 
│  double │  32  │  4   │ 1.7E-308~1.7E+308   │ 
└─────┴─────┴──────┴────────────┘


  字符串,通常用\"\"(双引号)表示。也可用\'\'(单引号)表示,如下:

 $a=\"abc\"; 
  $b=\"abc$a\"; 
  $c=\'abc$a\'; 
  $d=\"\\"cde\\"\"; 
  $e=\'\"cde\"\';

PHP中的各种变量均在变量名前加上“$”以示区别。 
  注意,$b的内容为abcabc,$c的内容为abc$a,$d的内容为\"cde\",$e的内容也为\"cde\"。可以看出,双引号中的内容中的变量名会被替代崐,而单引号中的则不会。双引号中的内容需转义,如$应用\$表示,而单引号中的则不用。

 PHP中的数组语法为: 
  数组名[索引] 
  索引可为数字,也可为文字。但不建议使用文字,因为意义不大。对于数组也比其它语言灵活如下例: 

<?php 
 $names[]=100; 
 $names[]=200; 
 $names[]=\"hi,how are you\"; 
 $names[]=98.5; 
 $names[]=1.7E+23; 
 $num=count($names); 
 for ($i=0;$i<=$num;$i++){ 
 echo \"$names[$i]<br>\"; 
        } 
?>

   可看出,一个数组中的元素不一定为同一类型,这就是PHP数组的“活”处。 
    使用对象,可使编程者更易于维护,也使程序更为易读。较其它语言,PHP可简单多了,它只有类别(class)、方法(method)、属性(attrib)及扩展(extendsions)等。

 前文谈的只是PHP的数据类型,所谓“磨刀不误砍柴功”,打好PHP基础才能更好地学好PHP编程。 
    PHP中的表达式与运算符与C语言的差别不大,现将其列表于下: 
┌─────┬─────────┬──────────┐ 
│ 符 号 │   运算符   │  范 例     │ 
├─────┼─────────┼──────────┤ 
│  +   │   加法    │  $a+$b      │ 
├─────┼─────────┼──────────┤ 
│  -   │   减法    │  $a-$b      │ 
├─────┼─────────┼──────────┤ 
│  *   │   乘法    │  $a*$b      │ 
├─────┼─────────┼──────────┤ 
│  /   │   除法    │  $a/$b      │ 
├─────┼─────────┼──────────┤ 
│  %   │   取余数   │  $a%$b      │ 
├─────┼─────────┼──────────┤ 
│  ++   │   递增    │ $a++或++$a    │ 
├─────┼─────────┼──────────┤ 
│  --   │   递减    │ $a--或--$a    │ 
├─────┼─────────┼──────────┤ 
│  ==   │   等于    │ $a==10       │ 
├─────┼─────────┼──────────┤ 
│  ===  │   绝等于   │ $a===10      │ 
├─────┼─────────┼──────────┤ 
│  !=   │   不等于   │ $a!=10       │ 
├─────┼─────────┼──────────┤ 
│  <   │   小于    │ $a<9        │ 
├─────┼─────────┼──────────┤ 
│  >   │   大于    │ $a>8        │ 
├─────┼─────────┼──────────┤ 
│  <=   │  小于等于   │ $a<=10       │ 
├─────┼─────────┼──────────┤ 
│  >=   │  大于等于   │ $a>=1       │ 
├─────┼─────────┼──────────┤ 
│  =   │ 相等赋值运算符 │ $a=0        │ 
├─────┼─────────┼──────────┤ 
│  +=   │ 加法指定运算符 │ $a+=5       │ 
├─────┼─────────┼──────────┤ 
│  -=   │ 减法指定运算符 │ $a-=1       │ 
├─────┼─────────┼──────────┤ 
│  *=   │ 乘法指定运算符 │ $a*=2       │ 
├─────┼─────────┼──────────┤ 
│  /=   │ 除法指定运算符 │ $a/=5       │ 
├─────┼─────────┼──────────┤ 
│  %=   │ 余数指定运算符 │ $a%=7       │ 
├─────┼─────────┼──────────┤ 
│  .=   │ 字符串指定运算符│ $a.=\"hello\"    │ 
├─────┼─────────┼──────────┤ 
│  &   │ 与       │ $a&$b       │ 
├─────┼─────────┼──────────┤ 
│  |   │ 或       │ $a|$b       │ 
├─────┼─────────┼──────────┤ 
│  ^   │ Xor       │ $a^$b       │ 
├─────┼─────────┼──────────┤ 
│  ~   │ 非        │~$a(取1的补码   )│ 
├─────┼─────────┼──────────┤ 
│  <<   │ 向左移位     │ $a<<$b       │ 
├─────┼─────────┼──────────┤ 
│  >>   │ 向右移位     │ $a>>$b       │ 
├─────┼─────────┼──────────┤ 
│and或&&  │ 与       │$a and $b或$a&&$b  │ 
├─────┼─────────┼──────────┤ 
│or或||  │ 或       │$a or $b或$a||$b  │ 
├─────┼─────────┼──────────┤ 
│xor    │ Xor       │   $a xor $b   │ 
├─────┼─────────┼──────────┤ 
│  !   │ 非       │    !$a     │ 
└─────┴─────────┴──────────┘ 
┌───┬────────────┐ 
│符号 │ 意义说明       │ 
├───┼────────────┤ 
│ $  │变量          │ 
├───┼────────────┤ 
│ &  │变量的指针(加在变量前)│ 
├───┼────────────┤ 
│->  │对象的方法或属性    │ 
├───┼────────────┤ 
│=>  │数组的元素值      │ 
├───┼────────────┤ 
│? :  │三元运算符       │ 
└───┴────────────┘ 
  同C语言的比较一下吧。其中只是多了个“.”这一个运算符。它的作用是使两个字符串相连,如下例,显示结果为hello,my baby. 
 
<?php 
$a=\"hello,\"; 
$b=\"my baby.\"; 
echo $a.$b; 
 ?>
 
  还有一个符号也使PHP的功能强大了。这就是“$”。它是用于变量之前的,表示这是个变量,如$A,$b等。那它的作用又强在哪呢?这就是变量的变量。 
  如下例: 
  
<?php 
$a=\"go\"; 
$$a=\"here\"; 
echo $a; 
echo $$a; 
echo $go; 
?>
 
  显示结果为: 
go 
here 
here 
  其实,在一个变量前加一个“$”,就是把这个变量的内容作为了一个新的变量名。这是PHP所特有的,有时可使程序简单化。 

 

上一文《谈谈PHP语法》已谈了PHP的数据类型和表达式。现在,让我们来看看PHP的变量与常数。 
  让我们先看一例吧。 
文件:test.php 

<?php 
//这是一种单行注释方法 
#这是另一种单行注释方法 
/*这是一种多行注释的方法 
以下让我们看看例了吧*/ 
  funtion display($file,$line) 

  global $message; 
  echo \"FILE:$file<br>\"; 
  echo \"LINE:$line<br>\"; 
  echo \"Message:$message<br>\"; 


 $message=\"这是一个例程。\"; 
 display(_FILE_,_LINE_); 
?> 

显示结果为: 
text.php 
15 
这是一个例程 

  上例中,function 是定义一个自定义函数。其后的两个变量$file和$line是两个局域变量,它们只在函数体中起作用,与函数体外的变崐量互不干扰,如果在函数体外还有$file或$line的话,两个$file和两个$line的值是不一定会相同的。_FILE_和_LINE_是两个常量,它们的崐值是早已定好了的。_FILE_为本文件的文件名,_LINE_为执行行所在的行号。在函数体内还有一句为 global $message; 它的作用是使全崐局变量$message能作用到函数体中,这句还可写成$GLOBAL[\"message\"]; 
  对于GET、POST和Cookie等机制产生的信息,PHP会自动地将其视为PHP的变量。这样,使提交表单的信息处理显地是格外的轻松。如下: 
文件:

form.html 
<html><head><title></title></head> 
<body> 
<form action=\"deal.php\"> 
用户名:<input type=\"text\" name=\"uname\" size=20><br> 
<input type=\"submit\" value=\"OK\"> 
</form> 
</body>
</html>

<?php 
echo \"你的用户名为:$uname\"; 
?> 


  以上程序会要求用户输入一个用户名,提交表单后,后回用户名确认信息。可看出,表单中的uname已成为了deal.php程序中的$uname变崐量。简单吧。:-) 
  下面看看PHP的基本流程控制: 
  if…else…Elseif 
  语法一: 
  if (条件) { 
  语句体 
 } 
  语法二: 
  if (条件) { 
  语句体一 
  }else{ 
 语句体二 
  } 
  语法三: 
  if (条件1) { 
  语句体一 
 }elseif(条件2) { 
  语句体二 
  }else{ 
  语句体三 
  } 
  我们把上面的deal.php程序改为: 
 
<?php 
 if ($uname==\"小明\") { 
 echo \"见到你真高兴,小明。\"; 
 }elseif ($uname==\"小华\"){ 
echo \"喔,是小华呀。\"; 
 }else{ 
echo \"你是$uname,对吧\"; 
 } 
?> 

  除了if 语句外,还有while循环,它的语法如下: 
  while(条件){ 
 语句体 
  } 
  当条件为true时,执行语句体。 
  do…while的语法如下: 
  do { 
  语句体 
  }while(条件) 
  先执行一次语句体,若条件为true,则循环再次执行语句体。 
  for循环的语法同C一样,如下: 
  for (条件初始;判断条件;条件改变) {语句} 
  而break 跳出正在执行的循环,continue 为中断本次循环。 
  好了,本文就到这吧。以上的一些基础相信您很快便能上手了的。 

 

上文中曾提到了PHP提交表单信息是很方便的。可是,提交的表单信息中的变量的生命周期是多长呢?本文就来崐谈谈这个问题。

  表单的参数会传给下一个处理程序,这是不用置疑的。因为,我们曾有过这样的例子。可它还会继续传给下一个处理程序吗?

  答案是否定的!一个Form表单所提交的参数只传给第一个处理程序,而下一个处理程序中它是不会起作用的。来看看下例吧:

文件:table.html 
<html> 
<head><title>表单提交</title> 
</head> 
<body> 
<form action=\"deal-1.php\"> 
输入你认为好的歌星:<input type=\"text\" name=\"start\" size=20 > 
<input type=\"submit\" value=\"是他了,送出吧\"> 
</form> 
</body> 
</html> 

文件:deal-1.php 

<?php 
echo \"<html><body>\"; 
echo \"你喜欢$start,对吗?<br>\"; 
echo \"<a href=\\"deal-2.php\\">试试是否会再传下去</a>\"; 
echo \"</body></html>\"; 
?> 

文件:deal-2.php 

<?php 
echo \"<html><body>\"; 
echo \"你说$start好吗?\"; 
echo \"</body></html>\"; 
?>   

 从上例中,我们可以看见:deal-1.php处理的结果为(假定我们在table.html中输入的是“张学友”): 

你喜欢张学友,对吗? 
试试是否会再传下去 

  说明表单提交了变量$start给deal-1.php,而在deal-1.php的显示结果中,若我们点击了链接“试试是否会再传下去”之后,deal-2.ph崐p的处理结果为: 

你说好吗? 

  很明显,$start没有传给deal-2.php。但是,我们又怎样延长$start的生命周期呢?其实,这很简单,使用参数传递的方法就行了。如崐下,我们可以把deal-1.php改成这样: 

<?php 
echo \"<html><body>\"; 
echo \"你喜欢$start,对吗?<br>\"; 
echo \"<a href=\\"deal-2.php?start=$start\\">试试是否会再传下去</a>\"; 
echo \"</body></html>\"; 
?>
 
  分晰程序,你会发现只是在deal-1.php后加了一句“?start=$start”就行了,而这起的作用就是参数传递。如:http://zhuagk12.oso.崐com.cn/cartoon.php?no=1 其?后的为参数,no为参数名,其值为1。这样,会在cartoon.php程序中产生变量$no,其值为1。若传两个以上崐参数,其间用&分隔。如:http://zhuagk12.oso.com.cn/cartoon.php?no=2&debug=1 
  为了延长参数的生命周期,我们还可以使用Cookie或Session来实现,这里不加多述,在以后的文章中你会见到它们的用法。

 

 

上文(《浅谈PHP语法(三)》)的最后提到了Cookie和Session,本文就这两种技术作一些介绍。 
    Cookie我们都常把它念成“库记”,也叫它“小甜点”。它是一种存储在客户浏览器中的一个小文件。它是为解决HTTP的一次连接而无崐记忆而发展起来的,可用来追踪使用者或是对重返的使用者进行确认。PHP对此提供了setcookie()函数,可以设定Cookie。因为Cookies算是崐HTTP标头的一部分。所以,setcookie()函数必须在网页数据传给浏览器之前调用。这同调用header()函数是一样的。 
  Cookie必须由主机端提供;所以,我们必须在CGI程序中送出一个设定了cookie的标头。如下是PHP中调用setcookie()函数设定cookie的崐例子: 


<?php 
setcookie(\"user\",\"wind\",time()+3600,\"/php/\",\"http://www.oso.com.cn\"); 
?>
 

    其中,user为该cookie的名称;wind为该cookie的值;time()+3600为该cookie的有效时间;/php/为该cookie的相关路径;http://www.崐oso.com.cn为该cookie的网站。 
    其实,我们除了使用这种方式设定cookie外,还可使用header()函数如:header(\"Set-Cookie:user=wind\"),不过这要对HTTP的头部信崐息有所了解才行,所以笔者不建议使用这种方式,还是使用setcookie()方便些。 
    读取cookie时,浏览器在连接某个网站时,会自动先检查是否有该站的cookie,有的话将会自动传给服务器,而在PHP中,会将传回的co崐okie作为一个变量。如上面所设的cookie返回后,会形成一个$user变量,其值为wind。 
    但是,cookie有个致命的缺点,就是若客户关了cookie接收,无法向客户端存放cookie时,一切操作就会出错。因此,在PHP4中提供了S崐ession来代替Cookie。 
  Session与Cookie的最大区别在于Cookie将信息存于客户端,而Session则是存于服务器端。其实,Session是对PHP脚本提供了一个全局崐变量。例子如下: 
  设置一个Session,名为user,值为wind 


<?php 
session_start(); 
$user=\"wind\"; 
session_register(\"user\"); 
?>
 
  

读Session,显示结果为“欢迎你!wind” 

?br> <?php 
session_start(); 
echo \"欢迎你!$user\"; 
?> 

    本文只是浅谈了一下Cookie和Session技术,对于想具体了解该技术的人,还请参考别的书藉。 

网上发送Email,可要用到mail()函数了。其格式如下: 
  
mail(收信人,主题,内容,邮件文件头); 
  
在网上,发送Email给站长,通常是这样的:

<a href=\"mailto:webmaster@163.com\">webmaster@163.com</a> 

这样,当点击了webmaster@163.com这个链接之后,就会启动默认的邮件编缉器来写Email,实在是麻烦,使用mail()函数,便可方便地编出一个在线发信页面。这种页面的收件人是固定的(webmaster@163.com),有需再填收件人地址了,而主题我们也可以将把它定下来。如下例: 

  文件:email.html 
<html> 
<head> 
<title>发信给网管</title> 
</head> 
<body> 
<h2 align=\"center\">网管收信</h2><br> 
<hr><br> 
<center> 
<form action=\"mail.php\"> 
发件人:<input type=\"text\" name=\"from\" size=25><br> 
主题:<input type=\"text\" name=\"subject\" size=20><br> 
内容: 
<textarea name=\"content\" cols=80 rows=15>你好,站长:</textarea><br> 
<input type=\"submit\" value=\"寄出\"> <input type=\"reset\" value=\"重写\"><br> 
</form> 
</body></html> 

文件:mail.php 


<?php 
if (empty($from) or empty($subject) or empty($content)) {echo \"没有完成填写,请<a href=\"email.html\">返回</a>\";} 
$body=\"[主题] $subjectn\"; 
$body.=\"[发件人] $fromn\"; 
$body.=$content; 
$deal=mail(\"webmaster@163.com\",$subject,$body,\"From:$from\"); 
if ($deal) {echo \"寄件成功!\";}else{echo \"寄件失败!!!\";} 
?>
 
  
  PHP介绍到此,也差不多了,你是不是感到了PHP的强大,是不是也想加入PHP的行列,就现在吧。要使自己在PHP中飞翔,这点知识还是崐不足的,它只能帮你入门而已。入门之后,就修行在个人了。我的朋友,再见(^_^)

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论