php腳本的後面名為.php,代碼放置在下面的括號裡面:
<?php ....... ?>
echo可以打印信息,類似於printf。
<?php echo "hallo world"; ?>
每條語句後面用分號結尾;。
php支持三種注釋方式:
<?php // 第一種 # 第二種 /* 這是 多行 注釋 */ ?>
在php中,函數、類、和關鍵詞的大小寫都是同一個東西:
<!DOCTYPE html> <html> <body> <?php ECHO "Hello World!<br>"; echo "Hello World!<br>"; EcHo "Hello World!<br>"; ?> </body> </html>
不過所有變量都對大小寫敏感,需要區分大小寫。
<?php $color="red"; $Color="black"; echo "my car is " . $color . "<br>"; echo "my car is " . $Color . "<br>"; ?>
上面的例子同時指出了變量定義以及字符串拼接的語法。
變量命名規則:
PHP 變量規則:
變量會有三種不同的作用域:
PHP 有三種不同的變量作用域:
函數之外聲明的變量擁有 Global 作用域,只能在函數以外進行訪問。
函數內部聲明的變量擁有 LOCAL 作用域,只能在函數內部進行訪問。
下面的例子測試了帶有局部和全局作用域的變量:
<?php
$x=5; // 全局作用域
function myTest() {
$y=10; // 局部作用域
echo "<p>測試函數內部的變量:</p>";
echo "變量 x 是:$x";
echo "<br>";
echo "變量 y 是:$y";
}
myTest();
echo "<p>測試函數之外的變量:</p>";
echo "變量 x 是:$x";
echo "<br>";
echo "變量 y 是:$y";
?>
運行結果:
測試函數內部的變量:
變量 x 是:
變量 y 是:10
測試函數之外的變量:
變量 x 是:5
變量 y 是:
比較奇怪的就是為什麼全局變量不能在局部函數內訪問。
其實可以訪問,不過需要global關鍵字的幫助:
global 關鍵詞用於訪問函數內的全局變量。
要做到這一點,請在(函數內部)變量前面使用 global 關鍵詞:
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 輸出 15
?>
PHP 同時在名為 $GLOBALS[index] 的數組中存儲了所有的全局變量。下標存有變量名。這個數組在函數內也可以訪問,並能夠用於直接更新全局變量。
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 輸出 15
?>
通常,當函數完成執行後,會刪除所有變量。不過,有時我需要不刪除某個局部變量。實現這一點需要static:
<?php
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
php中echo和print都能使用,兩者的唯一區別是print返回1,echo沒有返回值。
strlen函數可以返回字符串的長度。
strpos函數用來確定另外一個字符串的位置:
<?php
echo strpos("Hello world!","world");
?>
使用define函數來定義常量:
<?php
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>
define函數還有第三個參數,用來指定是否大小寫敏感。
php的if-else語句和其他語言大同小異,舉個例子:
<?php
$t=date("H");
if ($t<"10") {
echo "Have a good morning!";
} elseif ($t<"20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
switch-case語句:
<?php
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>
while、for語句和其他語言無差別,看看foreach吧:
<?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
php的真正力量來自於它的函數,它有1000個內置函數。
用戶定義的函數聲明以關單 "function" 開頭:
function functionName() {
被執行的代碼;
}
舉個例子:
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // 調用函數
?>
// 含參數
<?php
function familyName($fname,$year) {
echo "$fname Zhang. Born in $year <br>";
}
familyName("Li","1975");
familyName("Hong","1978");
familyName("Tao","1983");
?>
// 默認參數
<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // 將使用默認值 50
setHeight(135);
setHeight(80);
?>
// 返回值
<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>
在 PHP 中,有三種數組類型:
索引數組:
$cars=array("Volvo","BMW","SAAB");
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
// count
<?php
$cars=array("Volvo","BMW","SAAB");
echo count($cars);
?>
// 變量索引數組
<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "<br>";
}
?>
關聯數組:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
// 遍歷
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
數組排序方法有下面這些:
比較難理解的是鍵值對排序。
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);
?>
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
?>
超全局變量,也就是預定義的全局變量,在哪裡都能用,有特殊含義:
其他內容可以在表單處理中找到。