公司代理支付宝,需要用PHP来写在线支付的接口,一向都用ASP工作的,想想PHP还是上大学时自己看过。现在也忘的差不了。再看看吧!大部分内容来自PHP参考手册,手是有的就不用看了。
一、环境配置,不多了,用google一搜一大把。
二、语法
1、嵌入方式
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>les01</title> </head> <body> 嵌入方式: <? echo "hello world\n";//第一种 ?> <?php echo "hello world\n";//第二种 ?> <script language="php"> echo ("hello world")//第三种 </script> </body> </html>
2、文件引用
<?php include("Config.php"); require("Config.php"); /* require通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 include 一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 */ ?>
3、程序注释语句
//这是单行注释 /* 多行的 */ #还有这种,没有用过
3、常量与变量
<1>常量:define()函数
<?php
define("COPYRIGHT", "Copyright © 2000, netleader.126.com");
echo COPYRIGHT;
?>
<2>变量:
[1]类型:string integer double array object
string:字符型,无论是单一字符或数千字的字符串都是使用这个变量类型。值得注意的是要指定字符串给字符串变量,要在头尾加上双引号 (例如: "这是字符串")。在要让字符串换行时,可使用溢出字符,也就是反斜线加上指定的符号,若是 \x 加上二位数字,如 \xFE 即表十六进位字符,详见下表:
符号 意义
\" 双引号
\\ 反斜线
\n 换行
\r 送出 CR
\t 跳位 (TAB)
interger:为整数型别。在 32 位的操作系统中,它的有效范围是 -2,147,483,648 到 +2,147,483,647。要使用 16 进位整数可以在面加 0x。
double:为浮点数型别。在 32 位的操作系统中,它的有效范围是 1.7E-308 到 1.7E+308。
array:为数组变量,可以是二维、三维或者多维数组,其中的元素也很自由,可以是 string、integer 或者 double,甚至是 array。
object:类,面向对象,可以参看JAVA的语言,PHP好象用的不多!
[2]变量的声明
只要在英文字符串前面加个美元号 $ 即可,目前变量名称仍不能使用中文,区分大小写。
例子
$ mystring="中华人民共和国"; $ inte=123456; $ myarray = array("子", "丑", "寅", "卯"); class foo { function do_foo () { echo "Doing foo."; } } $ bar = new foo; $ bar -> do_foo ();
此外,还有布尔值 (boolean),通常 1 即为 true,0 为 false。
在变量之间,若要转换类型,在 PHP 程序中是很自由的,直接就拿来用了,不必经过特殊的转换函数。当然,浮点数转成整数就有点牵强了,不过可以将浮点数转成字符串,也是很好处理。
3、变量的使用
<1>全局变量
$ GLOBALS声明
例子:
<?php // 本程序使用 $ GLOBALS 数组 function myfunc() { echo $ GLOBALS["PHP_SELF"]; } myfunc(); ?>
错误的例子:
<?php // 这是错误的示范 function errfunc() { echo $ PHP_SELF; } errfunc(); ?>
应修改为:
<?php // 本程序使用全局定义 function myfunc() { global $ PHP_SELF; echo $ PHP_SELF; } myfunc(); ?>
变量前面加上 global 的名称,就是定义该变量为全局变量。用这种方式,就不需使用 $ GLOBALS 数组,也能让变量进入自行开发的函数中。
<3>静态变量
<?php // 静态变量的例子 function myfunc() { static $ mystr; $ mystr.="哈"; echo $ mystr."<br>\n"; } myfunc(); // 哈 myfunc(); // 哈哈 myfunc(); // 哈哈哈 ?>
函数在执行时所产生的变量,在函数结束时就消失了,有时因为程序的需要,函数在循环中,当不希望变量在每次执行完函数就消失的话,静态变量 (static variable) 就派上用场了。上例中,使用 $ mystr 变量之前,先在变量前面加上 static,即表示变量 $ mystr 是静态变量,当每次执行 myfunc() 函数时,$ mystr 的值会一直增加,每执行一次就多一个哈字。若将 static 的静态变量定义拿掉,就没办法累加“哈”字了。
应用表格的例子:
<?php function TdBackColor() { static $ ColorStr; if ($ ColorStr=="808080") { $ ColorStr="c0c0c0"; } else { $ ColorStr="808080"; } return($ ColorStr); } echo "<table border=1>\n"; for ($ i=0; $ i<10; $ i++) { $ ColorStr=TdBackColor(); echo "<tr><td bgcolor=".$ ColorStr.">这是第".$ i."行</td></tr>\n"; } echo "</table>"; ?>
.的作用和“+”一样。
<4>应用技巧
<?php $ a = "Hello"; $ $ a = "world"; echo "$ a, $ hello"; // Hello, world echo "$ a, {$ a}"; // 也是 Hello, world ?>
<5>变量传递
<form action=next.php method=post> 姓名: <input type=text name="username"><br> 性别: <input type=text name="sex"><br> <input type=submit> </form>
如果PHP 的配置文件中,track_vars 设为 On 时,直接产生$ username和$ sex,需要处理的文件中,直接用就可以,不象ASP一样要request进来!
三、运算符号
1、算术运算符
算术运算 (arithmetic operators) 符号,就是用来处理四则运算的符号,这是最简单,也最常用的符号,尤其是数字的处理,几乎都会使用到算术运算符号。
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算
% 取余数
++ 累加
-- 递减
例:
<?php $ a = 8; $ b = 2; $ c = 3; echo $ a+$ b."<br>\n"; echo $ a-$ b."<br>\n"; echo $ a*$ b."<br>\n"; echo $ a/$ b."<br>\n"; echo $ a%$ c."<br>\n"; $ a++; echo $ a."<br>\n"; $ c--; echo $ c; ?>
2、字符串运算
英文下的句号:“.”连接作用,和“+”号作用差不多
<?php $ a="abc"; $ b="xyz"; echo $ a.$ b; ?>
3、赋值运算
= 将右边的值连到左边
+= 将右边的值加到左边
-= 将右边的值减到左边
*= 将左边的值乘以右边
/= 将左边的值除以右边
%= 将左边的值对右边取余数
.= 将右边的字符串加到左边
例:
<?php $ a = 5; $ a += 2; // 即 $ a = $ a + 2; echo $ a."<br>\n"; $ b = "哇"; $ b .= "哈"; // $ b = "哇哈"; $ b .= "哈"; // $ b = "哇哈哈"; echo "$ b<br>\n"; echo "$ a"; ?>
4、位运算
& 且 (And)
| 或 (Or)
^ 异或 (Xor)
<< 向左移位
>> 向右移位
~ 取 1 的补数
要说的东西太多不说了。
5、逻辑运算
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
!= 不等于
&& 而且 (And)
and 而且 (And)
|| 或者 (Or)
or 或者 (Or)
xor 异或 (Xor)
! 不 (Not)
6、补充其它运算符
$ 变量
& 变量的地址 (加在变量前)
@ 不显示错误信息 (加在函数前)
-> 类的方法或者属性
=> 数组的元素值
? : 三元运算子
例:
x>y?x:y
如果x>y结果为true,执行x,否则执行y
和下面的结果一样
if (x>y){ echo x }else{ echo y }
四、程序流程
1、if语句
if ... { }
if ....else....
if .... { .... }else { .... }
if .... { .... }elseif { .... }elseif { .... } else { .... }
2、while与do...while
while先判断再执行
do... while先执行再判断
<?php $ i = 1; while ($ i <= 10) { print $ i++; echo "<br>\n"; } ?>
<?php $ i = 1; do{ print $ i++; echo "<br>\n"; }while($ i <= 10) ?>
3、for循环
for (expr1; expr2; expr3) {
statement
}
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
例:
<?php for($ i=0;$ i<10;$ i++) { echo $ i; echo "<br>"; } ?>
4、switch语句
switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
语法如下
switch (expr) {
case expr1:
statement1;
break;
case expr2:
statement2;
break;
:
:
default:
statementN;
break;
}
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
<?php
switch (date("D")) {
case "Mon":
echo "今天星期一";
break;
case "Tue":
echo "今天星期二";
break;
case "Wed":
echo "今天星期三";
break;
case "Thu":
echo "今天星期四";
break;
case "Fri":
echo "今天星期五";
break;
default:
echo "今天放假";
break;
}
?>
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
5、break与continue
break 用来跳出目前执行的循环
continue 立即停止目前执行循环,并回到循环的条件判断处
<?php $ i = 0; while ($ i < 10) { if ($ arr[$ i] == "stop") { break; } $ i++; } ?>
<?php while (list($ key,$ value) = each($ arr)) { if ($ key % 2) { // 略过偶数 continue; } do_something_odd ($ value); } ?>
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}