一合武、PHP標(biāo)記
<?php echo "hello php"; ?>
<? echo "hello php"; ?>
<script language="php"> echo "hello php"; </script>
<% echo "hello php"; %>
echo 可以輸出任何內(nèi)容到頁面上闻察。
注意:1、3可直接使用站玄,但是2,4需要修改php.ini的配置文件才能使用待诅,只做了解乘碑。
二、變量
1据块、變量命名規(guī)則
- 變量以 $ 符號開頭码邻,其后是變量的名稱
- 變量名稱必須以字母或下劃線開頭
- 變量名稱不能以數(shù)字開頭
- 變量名稱只能包含字母數(shù)字字符和下劃線(A-z、0-9 以及 _)
- 變量名稱對大小寫敏感($y 與 $Y 是兩個(gè)不同的變量)
2另假、變量賦值
- 值賦值:直接給變量賦值像屋。
$name = "xiaoming";
$age = 18;
$num = 10 + "20"; // $num輸出結(jié)果等于30
$a = "gebi"."laowang" // $a 輸出結(jié)果是gebilaowang
注意:在PHP中 + 只表示數(shù)字相加;? 才表示字符串拼接
打印10個(gè)小明
for ($i=0; $i < 10; $i++) {
// echo "小明".($i + 1)."號<br/>";
// echo "小明 $i 號<br/>";
// echo "小明{$i}號<br/>";
echo "小明".($i + 1)."號<hr/>";
}
// PHP中边篮,雙引號帶有變量解析功能
// 單引號為純字符串
// 雙引號解析變量的時(shí)候己莺,可以使用{}括起變量名
注意:PHP中奏甫,雙引號帶有變量解析功能,單引號為純字符串凌受。
雙引號解析變量的時(shí)候阵子,可以使用{}括起變量名。
- 引用賦值:將一個(gè)變量的地址賦給另一個(gè)變量胁艰,此處需要在變量名前面加上&符號款筑。
// &取址運(yùn)算符
$myAge = 18;
$yourAge = &$myAge;
// 取出$myAge的地址,賦給$yourAge腾么,修改$yourAge會(huì)影響$myAge
$yourAge = 19;
// 此時(shí)輸出的結(jié)果都是19
echo $myAge."<br/>";
echo $yourAge."<br/>";
// 函數(shù)內(nèi)部修改函數(shù)外部變量的值
// 如果需要函數(shù)內(nèi)修改函數(shù)外部變量,參數(shù)前面需要添加&符 號杈湾,進(jìn)行取址操作解虱。
function add(&$a){
$a *= 10;
}
$b = 10;
add($b);
echo $b."<br/>"; //輸出結(jié)果100
3、變量的變量
// 變量的變量
$one = "hello";
$$one = "world";
echo $one."".$hello; //輸出結(jié)果helloworld
4漆撞、超全局變量
php提供了很多有用的預(yù)定的變量殴泰,用于提供大量與環(huán)境有關(guān)的信息。
(1)浮驳、$_SERVER服務(wù)器變量悍汛,該全局變量包含著服務(wù)器和客戶端配置及當(dāng)前請求環(huán)境的有關(guān)信息。
$_SERVER['SERVER_NAME']:當(dāng)前運(yùn)行腳本所在的服務(wù)器的主機(jī)名
$_SERVER['REMOTE_ADDR']:客戶端IP地址
$_SERVER['REQUEST_URI']:URI的路徑部分
$_SERVER['HTTP_USER_AGENT']:操作系統(tǒng)和瀏覽器的相關(guān)信息
// 當(dāng)前運(yùn)行腳本所在的服務(wù)器的主機(jī)名
echo $_SERVER['SERVER_NAME']."<br/>";
// 客戶端IP地址
echo $_SERVER['REMOTE_ADDR']."<br/>";
// URI的路徑部分
echo $_SERVER['REQUEST_URI']."<br/>";
// 操作系統(tǒng)和瀏覽器的相關(guān)信息
echo $_SERVER['HTTP_USER_AGENT']."<br/>";
(2)至会、$_GET該變量包含使用GET方法傳遞的參數(shù)的有關(guān)信息
(3)离咐、$_POST該變量包含使用POST方法傳遞的參數(shù)的有關(guān)信息
html代碼
<form class="" action="login.php" method="post">
<label for="userName">請輸入賬號</label>
<input id="userName" type="text" name="userName" value="">
<br/>
<label for="pwd">密碼</label>
<input type="password" name="pwd" value="">
<br/>
<label for="phone">手機(jī)號</label>
<input type="num" name="phone" value="">
<br/>
<input type="submit">
</form>
注意:html代碼必須在服務(wù)器環(huán)境下加載,提交表單時(shí)才有效果奉件。
php代碼
<?php
echo "用戶名: " . $_POST["userName"] . " 密碼: " . $_POST["pwd"]." 手機(jī)號: " . $_POST["phone"];
?>
(4)宵蛀、$_REQUEST該變量記錄著通過各種輸入方法傳遞給腳本的變量,如GET POST县貌,但不要用這個(gè)超全局變量术陶,因?yàn)樗话踩宜俣缺容^慢。
(5)煤痕、$_COOKIE cookie變量數(shù)組
(6)梧宫、$_SESSION 會(huì)話變量數(shù)組
(7)、$_FILES 與上傳文件有關(guān)的變量數(shù)組
(8)摆碉、$_ENV 環(huán)境變量數(shù)組
(9)塘匣、$GLOBALS 所有全局變量數(shù)組
三、常量
1兆解、常量的定義
常量是指在程序執(zhí)行中無法修改的值馆铁。如PI(3.1415926);
在腳本執(zhí)行期間該值不能改變锅睛;
常量對大小寫敏感埠巨,通常常量名總是大寫历谍;
常量是全局的,可以在腳本的任何地方引用辣垒;
常量使用define()函數(shù)望侈;
// 常量
define("PI", 3.14);
echo PI;
2、內(nèi)置常量
- PHP_OS php所在操作系統(tǒng)的名稱
- PHP_VERSION 當(dāng)前php的版本號
echo PHP_OS;
echo "</br>";
echo PHP_VERSION;
3勋桶、魔術(shù)常量
______LINE__ 文件中的當(dāng)前行號脱衙;
______FILE__ 文件的完整路徑和文件名;
______FUNCTION__ 函數(shù)名稱例驹;
______CLASS__ 類的名稱捐韩;
______METHOD__ 類的方法名;
注意:此處下劃線的前后下劃線為2條鹃锈。
// 魔術(shù)常量
echo __LINE__."<br>";
echo __FILE__."<br>";
function test () {
echo __FUNCTION__."<br>";
};
test();
四荤胁、數(shù)據(jù)類型
1、字符串
字符串有三種定義方式:單引號屎债,雙引號仅政,定界符(heredoc);
- 單引號字符串中出現(xiàn)的變量不會(huì)被變量的值替代盆驹;
- 雙引號字符串中最重要的一點(diǎn)是其中的變量會(huì)被變量值替代圆丹;
如果遇到美元符號($),解析器會(huì)盡可能多的取得后面的字符以組成一個(gè)合法的變量名躯喇,如果想明確的指定名字的結(jié)束辫封,用大括號將變量名括起來。
$age = 18;
echo "xiaoming{$age}"; // 輸出結(jié)果xiaoming18
- 字符串定界的方法使用定界符語法“<<<”玖瘸。
因?yàn)镻HP是一個(gè)Web編程語言秸讹,在編程過程中難免會(huì)遇到用echo來輸出大段的html和javascript腳本的情況,如果用傳統(tǒng)的輸出方法——按字符串輸出的話雅倒,肯定要有大量的轉(zhuǎn)義符來對字符串中的引號等特殊字符進(jìn)行轉(zhuǎn)義璃诀,以免出現(xiàn)語法錯(cuò)誤。如果是一兩處還可以容忍蔑匣,但是要是一個(gè)完整的html文本或者是一個(gè)200行的js我想是誰都會(huì)崩潰的劣欢。這就是PHP為什么要引入一個(gè)定界符的原因——至少一大部分原因是這樣的。
// 定界符
$name2 = 'kitty';
echo <<<AAA
<table height="20">
<tr>
<td>
{$name2}<br/>
<script>
var p='hello world';
document.writeln(p);
</script>
</td>
</tr>
</table>
AAA;
- PHP定界符的作用就是按照原樣裁良,包括換行格式什么的凿将,輸出在其內(nèi)部的東西;
- 在PHP定界符中的任何特殊字符都不需要轉(zhuǎn)義价脾;
- PHP定界符中的PHP變量會(huì)被正常的用其值來替換牧抵。
- 在語法上尤其需要注意<<<之后的字符是自己定義的,隨便什么都是可以的(比如AAA都可以),但是結(jié)尾處的字符一定要和他一樣犀变,他們是成對出現(xiàn)的妹孙,并且結(jié)尾一定要另起一行,并且改行除了AAA這個(gè)定界符結(jié)尾標(biāo)識之外不能有任何其他字符获枝,前后都不能有蠢正,包括空格。如果在本行最前或者最后出現(xiàn)空格省店,制表符的話就會(huì)報(bào)錯(cuò)嚣崭。
- 如果在定界符中間出現(xiàn)有PHP的變量,你只需要像在其它字符串中輸出一樣寫就行了懦傍,最好用大括號將其包裹起來雹舀。
2、字符串轉(zhuǎn)義
- \n 換行
- \r 回車
- \t 水平制表符(tab鍵)
- \\\(反斜杠)
- $ $(美元符)
- \” “(雙引號)
3粗俱、整形(integer)
$age = 25;
4葱跋、浮點(diǎn)型(float, double)
$num = 5.23;
5、布爾型(boolean)
$bo = TRUE;
$bo = FALSE;
五源梭、特殊數(shù)據(jù)類型
1、資源
$fh = fopen("test.txt","r");
2稍味、null
null無废麻,表示沒有值,nul不表示空格模庐,也不表示0烛愧;以下情況,則認(rèn)為是null:
- 沒有設(shè)置為任何預(yù)定義的變量掂碱;
- 明確的賦值為null怜姿;
- 使用函數(shù)unset()清除;
六疼燥、自動(dòng)類型裝換
因?yàn)閜hp對于類型定義非常的松散沧卢,所以有時(shí)會(huì)根據(jù)引用變量的環(huán)境將變量自動(dòng)轉(zhuǎn)換為最合適的類型;
相加運(yùn)算時(shí)會(huì)將字符串轉(zhuǎn)換為數(shù)字
$num1 = "12";
$num2 = "13assd";
echo $num1 + $num2; // 25
判斷語句中以下類型會(huì)被自動(dòng)轉(zhuǎn)換為布爾值
$abc = false; // false
$abc = 1; // true
$abc = -1; // true
$abc = 0; // false
$abc = null; // false
$abc = "haha"; // true
$abc = ""; // false
if ($abc) {
echo "hahhahahhah";
}
六醉者、自動(dòng)類型裝換
1但狭、gettype() 返回變量的類型,共有8個(gè)可能的值 string撬即、integer立磁、float、boolean剥槐、array唱歧、object、null粒竖、unknow颅崩。
echo "<hr/>";
$str = 245.245;
echo gettype($str);
2几于、is_type() 查看變量是屬于某個(gè)類型,是返回TRUE挨摸,否則返回FALSE孩革;
true 顯示1,false顯示無得运。
$age1 = array(134, 134, 45, 24);
echo is_string($age1);
如上代碼執(zhí)行效果為無膝蜈,如果寫is_array()則返回1。
3熔掺、var_dump() 獲取變量的值和類型的詳細(xì)信息
$age = 1245;
var_dump($age);
以上內(nèi)容純屬個(gè)人理解饱搏,由于本人水平有限若有錯(cuò)漏之處,敬請指出斧正置逻,小弟不勝感激推沸。