公司代理支付宝,需要用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);
}
?>