2.PHP入门
PHP站点的在线教程已经很棒了。在那里还有一些其他教程的链接。而本文的该部分将让你对PHP熟悉一点。我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程。
2.1 首要条件
你首先必须要有一个正在工作着的支持PHP的web服务器。我假定在你的服务器上所有PHP文件的扩展名为.php3。
2.2 PHP的安装
生成一个名为test.php3的文件,含有以下内容:
phpinfo(); ?>
然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP安装使用的选项了。
2.3 语法
就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法!
从HTML中分离
以下是可以使用的方法:
. . . ?>
<% . . . %>
语句
与Perl和C一样,在PHP中用(;)来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。
注释
PHP支持C,C++和Unix风格的注释方式:
/* C,C++风格多行注释 */
// C++风格单行注释
# Unix风格单行注释
Hello,World!
通过我们已经学过的知识,你可以编写一个最简单的程序输出一个也许是程序世界中最有名的词语:
2.4 数据类型
PHP支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。
数值
数值类型可以是整数或是浮点数。你可以用以下的语句来为一个数值赋值:
$a = 1234; # 十进制数
$a = -123; # 负数
$a = 0123; # 八进制数 (等于十进制数的83)
$a = 0x12; # 十六进制数(等于十进制数的18)
$a = 1.234; # 浮点数"双精度数"
$a = 1.2e3; # 双精度数的指数形式
字符串
字符串可以由单引号或双引号引出的字段定义。注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(\)可以被用来分割某些特殊字符。举例如下:
$first = 'Hello';
$second = "World";
$full1 = "$first $second"; # 产生 Hello World
$full2 = '$first $second';# 产生 $first $second
可以将字符和数字利用运算符号连接起来。字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。
数组与哈希表
数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组的索引从0开始。虽然我在这里没有说明,但是你一样可以轻易的使用多维数组。
// 一个包含两个元素的数组
$a[0] = "first";
$a[1] = "second";
$a[] = "third"; // 添加数组元素的简单方法
// 现在$a[2]被赋值为"third"
echo count($a); // 打印出3,因为该是数组有3个元素
// 用一个语句定义一个数组并赋值
$myphonebook = array (
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
);
// 噢,忘了教长吧,让我们添加一个元素
$myphonebook["dean"] = "5397";
// 你定义的carale元素错了,让我们更正它
$myphonebook["carole"] => "4522"
// 我还没有告诉你怎样使用数组的相似支持方式吗?让我们看一看
echo "$myphonebook[0]"; // sbabu
echo "$myphonebook[1]"; // 5348
其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和each()。
对象
使用new语句产生一个对象:
class foo
{
function do_foo ()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
改变变量类型
PHP マニュアルには次のように記載されています: 「PHP では、変数を宣言するときに変数の型を直接定義することはサポートされていません (また、その必要もありません)。変数の型は、それが使用される状況に基づいて決定されます。変数 var を文字列に代入すると、文字列になります。整数値を代入すると、整数になります。 "
$foo = "0"; // $foo は文字列 (ASCII 48)
$foo++; // $foo は文字列 "1" (ASCII 49)
$foo += 1; // $foo は整数 (2) になります
$foo = $foo + 1.3; // $foo は double (3.3; )
$foo = 5 + "10 Little Piggies" // $foo は整数 (15)
$foo = 5 + "10 Small Pigs" // $foo は整数 (15) です
;変数の型を強制的に変換するには、C言語と同じsettype()関数を使用します。
2.5 変数と定数
変数の前にドル記号 ($) が付いていることに気づいたかもしれません。すべての変数はローカル変数です。定義された関数で外部変数を使用するには、global ステートメントを使用します。また、変数のスコープを関数に制限したい場合は、static ステートメントを使用します。
$g_var = 1; // グローバル スコープ
function test()
{
global $g_var; // このようにして、グローバル変数を宣言できます
}
より高度なのは、変数の変数表現です。 PHPのマニュアルを参照してください。これは役立つ場合があります。
PHP には多くの組み込み定義変数があります。また、define 関数を使用して独自の定数を定義することもできます (define("CONSTANT", "value") など)。
2.6 演算子
PHP には、C、C++、Java でよく見られる演算子があります。これらの演算子の優先順位も一貫しています。代入には「=」も使用します。
算術と文字
文字に関連する演算子は次の演算子の 1 つだけです:
$a + $b: 加算
$a - $b: 減算
$a * $b: 乗算
$a / $b: 除算
$a % $b: 剰余 (剰余)
$a. $b: 文字列の連結
論理和比較
論理演算子:
$a || または
$a または $b: または
$ a && $b:
$a と $b :
$a と同じ xor $b: XOR ($a または $b が true の場合は true、両方が同じ場合は false)
$a : Non! -
比較演算子には以下が含まれます:
$a == $b :
$a と等しい != $b :
$a と等しくない < $b :
$a より小さい <= $b : 以下to
$a > $b:
$a >= $b:
以上 C と同様に、PHP にも三重演算子 (?:) があります。 PHP にもビット演算子が存在します。
優先順位
C や Java と同じです!
2.7 制御プロセス構造
PHPにはCと同じプロセス制御があります。以下に簡単に紹介します。
if、elseif、if(): endif
if (式 1) .}
elseif (式 2) .
.
}
// Python
if (式 1) .
elseif (式 2) .
;
のようなループ。 do..while、for
{
. .
}
do (式);
for (式 1; 式 2; 式 3)
{
.
}
file:// または
while (expr) .
endwhile ;
switch
switch は、複数の if-elseif-else 構造の最良の代替です。 :
switch ($i)
{
case 0:
print "i = 0";
case 1:
print "i = 1";
case 2:
print "i = 2";
}
break 、 continuebreak は、現在のループ制御構造を中断します。 continue は、残りの現在のループから抜け出し、次のループの実行を継続するために使用されます。
require、include
次の例のように独自の関数を定義できます。関数の戻り値は、任意のデータ型にすることができます:
function foo (変数名 1、変数名 2、...、変数名 n)
{
echo "Example function.n";
return $retval;
}
すべての PHP コードは、他の関数やクラスの定義も含め、関数定義に含めることができます。関数は参照する前に定義する必要があります。
2.9 クラス
クラスモデルを使用してクラスを作成します。クラスの詳細な説明は PHP マニュアルを参照してください。
class Employee{
var $empno; // 従業員数
{
$this->empno = $in_num;$ this ->empnm = $in_name;
}
function show()
{
echo "$this->empno, $this->empnm";
return;
}
{
$this->empnm = $in_name;}
}
$sbabu = 新しい従業員;
$sbabu->add_employee(10,"sbabu");
$sbabu->show();