PHP的語法
php的語法是<?php開頭深滚,?>結(jié)尾的
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
// php的單行注釋
<?php
echo "Hello World!";
?>
/*
這是php
的多行
注釋
*/
</body>
</html>
PHP的標(biāo)記風(fēng)格
PHP和其他的Web的語言一樣,都是使用一對(duì)標(biāo)記將PHP代碼部分包含起來.PHP一共支持4中標(biāo)記風(fēng)格
- XML風(fēng)格
<?php echo "這是XML標(biāo)記風(fēng)格!"; ?>
- 腳本風(fēng)格
<script language='php'> echo "這是腳本風(fēng)格標(biāo)記!"; </script>
- 簡(jiǎn)短風(fēng)格
<? echo "這是簡(jiǎn)短風(fēng)格"; ?>
- ASP風(fēng)格
<% echo "這是asp風(fēng)格"; # #好風(fēng)格的注釋 %>
PS:如果使用簡(jiǎn)短風(fēng)格和ASP風(fēng)格,要在php.ini文件中設(shè)置,將short_open_tag和asp_tags設(shè)置為on,重啟服務(wù)器.
PHP的變量
PHP變量的定義
變量是用來存儲(chǔ)數(shù)據(jù)的"容器"
PHP的變量規(guī)則:
- 變量以 $ 符號(hào)開始映皆,后面跟著變量的名稱
- 變量名必須以字母或者下劃線字符開始
- 變量名只能包含字母數(shù)字字符以及下劃線(A-z挤聘、0-9 和 _ )
- 變量名不能包含空格
- 變量名是區(qū)分大小寫的(Y 是兩個(gè)不同的變0)
$x = 10
$y = 12
$text = "HELLO"
$z = $x + $y
PS: PHP 是一門弱類型語言,PHP 會(huì)根據(jù)變量的值,自動(dòng)把變量轉(zhuǎn)換為正確的數(shù)據(jù)類型捅彻。在強(qiáng)類型的編程語言中组去,我們必須在使用變量前先聲明(定義)變量的類型和名稱。
PHP變量的作用域
PHP的有四種不同的變量作用域
- local,局部作用域
<?php function test() { $a = 15; echo "內(nèi)部輸出結(jié)果:" . $a; } echo "外部輸出結(jié)果:" . $a; // 無法訪問變量 a echo PHP_EOL; test(); ?>
- glocal,全局作用域
<?php $x = 5; $y = 10; $z = 0; function test() { global$x,$y,$z; $z = $x + $y; } test(); echo $z; //結(jié)果是15 $x = 5; $y = 10; $z = 0; function test() { $GLOBALS['z'] = $GLOBALS['x']+$GLOBALS['y']; } Test(); echo $z; //結(jié)果是15 ?>
- static,靜態(tài)作用域,當(dāng)一個(gè)函數(shù)執(zhí)行完成時(shí)步淹,它的所有變量通常都會(huì)被刪除从隆。然而,有時(shí)需要局部變量不要被刪除缭裆,要做到這一點(diǎn)键闺,請(qǐng)?jiān)谀谝淮温暶髯兞繒r(shí)使用 static 關(guān)鍵字。當(dāng)一個(gè)函數(shù)完成時(shí)澈驼,它的所有變量通常都會(huì)被刪除辛燥。然而,有時(shí)候您希望某個(gè)局部變量不要被刪除。
<?php function test() { static $x=0; echo $x . " "; $x++; } test(); test(); test(); test(); ?> // 輸出結(jié)果為0 1 2 3
- parameter(參數(shù))——參數(shù)作用域
參數(shù)是通過調(diào)用代碼將值傳遞給函數(shù)的局部變量挎塌。關(guān)于局部變量和全局變量的優(yōu)先級(jí)徘六,因?yàn)樵赑HP中函數(shù)都有自己?jiǎn)为?dú)的作用域,所以在局部變量的優(yōu)先級(jí)要大于全局變量(在你不聲明這個(gè)變量之前)榴都,聲明之后此變量就變成了局部變量如果修改值那么全局變量的值也會(huì)改變待锈。<?php $a = 10; $b = 5; function test() { $a = 15; $b = 5; $z = $a-$b; echo $z; } test(); function test1() { global $a,$b; $a = 15; $b = 5; $z = $a-$b; echo PHP_EOL; echo $z; } test1(); function test2() { global $a,$b; $z= $a-$b; echo PHP_EOL; //換行符 echo $z; } test2(); // 輸出結(jié)果為10 10 10 ?>
PHP EOF
PHP EOF(heredoc)是一種在命令行shell(如sh、csh嘴高、ksh竿音、bash、PowerShell和zsh)和程序語言(像Perl拴驮、PHP春瞬、Python和Ruby)里定義一個(gè)字符串的方法。
使用概述:
- 必須后接分號(hào)莹汤,否則編譯通不過快鱼。
- EOF 可以用任意其它字符代替颠印,只需保證結(jié)束標(biāo)識(shí)與開始標(biāo)識(shí)一致纲岭。
- 結(jié)束標(biāo)識(shí)必須頂格獨(dú)自占一行(即必須從行首開始,前后不能銜接任何空白和字符)线罕。
- 開始標(biāo)識(shí)可以不帶引號(hào)或帶單雙引號(hào)止潮,不帶引號(hào)與帶雙引號(hào)效果一致,解釋內(nèi)嵌的變量和轉(zhuǎn)義符號(hào)钞楼,帶單引號(hào)則不解釋內(nèi)嵌的變量和轉(zhuǎn)義符號(hào)喇闸。
- 當(dāng)內(nèi)容需要內(nèi)嵌引號(hào)(單引號(hào)或雙引號(hào))時(shí),不需要加轉(zhuǎn)義符询件,本身對(duì)單雙引號(hào)轉(zhuǎn)義燃乍,此處相當(dāng)與q和qq的用法。
<?php
echo <<<EOF
<h1>我的第一個(gè)標(biāo)題</h1>
<p>我的第一個(gè)段落宛琅。</p>
EOF;
// 結(jié)束需要獨(dú)立一行且前后不能空格
$name="runoob";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 結(jié)束需要獨(dú)立一行且前后不能空格
echo $a;
?>
PS:
- 以 <<<EOF 開始標(biāo)記開始刻蟹,以 EOF 結(jié)束標(biāo)記結(jié)束,結(jié)束標(biāo)記必須頂頭寫嘿辟,不能有縮進(jìn)和空格舆瘪,且在結(jié)束標(biāo)記末尾要有分號(hào) 。
- 開始標(biāo)記和結(jié)束標(biāo)記相同红伦,比如常用大寫的 EOT英古、EOD、EOF 來表示昙读,但是不只限于那幾個(gè)(也可以用:JSON召调、HTML等),只要保證開始標(biāo)記和結(jié)束標(biāo)記不在正文中出現(xiàn)即可。
- 位于開始標(biāo)記和結(jié)束標(biāo)記之間的變量可以被正常解析某残,但是函數(shù)則不可以国撵。在 heredoc 中,變量不需要用連接符 . 或 , 來拼接.
PHP的輸出語句對(duì)比
echo玻墅,print介牙,print_r,var_dump 的區(qū)別
echo
輸出一個(gè)或者多個(gè)字符串澳厢。print
和 echo 最主要的區(qū)別: print 僅支持一個(gè)參數(shù)环础,并總是返回 1。print_r
打印關(guān)于變量的易于理解的信息,如果給出的是 string剩拢、integer 或 float线得,將打印變量值本身。如果給出的是 array徐伐,將會(huì)按照一定格式顯示鍵和元素贯钩。object 與數(shù)組類似。 記住办素,print_r() 將把數(shù)組的指針移到最后邊角雷。使用 reset() 可讓指針回到開始處。var_dump
此函數(shù)顯示關(guān)于一個(gè)或多個(gè)表達(dá)式的結(jié)構(gòu)信息性穿,包括表達(dá)式的類型與值勺三。數(shù)組將遞歸展開值,通過縮進(jìn)顯示其結(jié)構(gòu)需曾。var_dump 和 print_r 的區(qū)別
var_dump 返回表達(dá)式的類型與值而 print_r 僅返回結(jié)果吗坚,相比調(diào)試代碼使用 var_dump 更便于閱讀。