分號(hào)的使用
1.功能性語(yǔ)句后面必須加分號(hào);
echo "hello world";
但如果是緊鄰?>比吭,分號(hào)可以省略绽族;
2.結(jié)構(gòu)性語(yǔ)句后面不能加分號(hào);
變量的使用
1.變量名以$開始
2.變量的名稱見名知意
3.不合法的變量名衩藤,不能以數(shù)字開頭吧慢,不能有運(yùn)算符號(hào)(關(guān)鍵字可以作為PHP的變量名稱使用)
4.駝峰式命名
5.可以多個(gè)變量賦同一值
$a = $b = $c = 10;
var_dump();打印變量類型及內(nèi)容;
isset()判斷變量是否存在赏表;
unset()移除變量检诗;
empty()是否為空匈仗;
一個(gè)可變變量可以獲取一個(gè)普通變量的值作為這個(gè)可變變量的變量名
$a = "hello";
$$a = "world";
echo "$a $($a)";
echo "$a $hello"; // hello world;
變量的引用
&取址符,C語(yǔ)言中可獲得變量地址逢慌,但PHP中直接獲取不行悠轩。
$a = 10;//假設(shè)地址為0x1236;
echo &$a;//如果直接打印地址會(huì)報(bào)錯(cuò)
$c = &$a;//可將此地址傳給第三方
echo $c;//此處打印的值并非地址,而是與相同的值10攻泼,可理解為一個(gè)變量有兩個(gè)變量名
注意:
1.只有變量才有地址火架,也就是只有變量才能有引用
2.一個(gè)變量發(fā)生變化,另個(gè)變量也會(huì)變化
3.在使用unset()函數(shù)時(shí)忙菠,如果有引用關(guān)系何鸡,只是解除了這種引用關(guān)系,只刪除一個(gè)名字只搁,另一個(gè)還在
4.如果兩個(gè)變量是引用關(guān)系音比,一個(gè)變,另一個(gè)也改變氢惋,但如果給其中一個(gè)引用洞翩,不是普通的值,而是一個(gè)新的引用焰望,則改變引用關(guān)系骚亿,也就是引用關(guān)系只存在于兩者之間
變量類型:
四種標(biāo)量:bool,float/double,string,int
兩種符合類型:數(shù)組,對(duì)象
特殊類型:resource熊赖,null
bool值判斷:
整型中0来屠,浮點(diǎn)型0.00,字符串空“”震鹉,“0”俱笛,空數(shù)組,沒(méi)有單元的對(duì)象(僅適用于PHP4)皆為假值
字符串“ ”空格传趾,“0.00”迎膜,“0000”皆為真值
整型,浮點(diǎn)型:
整數(shù)超過(guò)最大值范圍即轉(zhuǎn)為浮點(diǎn)數(shù)浆兰,不要相信浮點(diǎn)數(shù)精確到了最后一位磕仅,也不要比較兩個(gè)浮點(diǎn)數(shù)是否相等,如果需要更高的精度簸呈,應(yīng)該使用任意精度數(shù)學(xué)函數(shù)或者gmp函數(shù)
字符串:
1.聲明一個(gè)字符或者多個(gè)字符組成的字符串必須使用單引號(hào)或雙引號(hào)
2.沒(méi)有長(zhǎng)度限制
3.在單引號(hào)中不可使用雙引號(hào)榕订,雙引號(hào)中可以使用單引號(hào)
4.單引號(hào)不能再使用單引號(hào),在雙引號(hào)不能再使用雙引號(hào)
5.可以使用轉(zhuǎn)義字符蜕便,讓有意變無(wú)意劫恒,無(wú)意變有意
$str = "this is a \"demo\" ";
echo $str;
// 返回this is a "demo";
單引號(hào)和雙引號(hào)的區(qū)別
1.雙引號(hào)中可以解析變量,單引號(hào)中不能解析變量
$int = 10;
$str = " this is $int"; // this is 10;
$str = 'this is $int' ;//this is $int ;
2.雙引號(hào)解析變量時(shí)玩裙,使用特殊字符或大括號(hào)將變量分開兼贸,[ ]除外,在雙引號(hào)中可以使用轉(zhuǎn)義字符\n \r \t 在單引號(hào)中不能使用轉(zhuǎn)義字符(在單引號(hào)中只能轉(zhuǎn)義單引號(hào)自己和轉(zhuǎn)義字符本身)
$str = "this{$int}is\n ad \t e\r mo";
定界符聲明字符串
主要用于大段字符串
1.使用<<<小于號(hào)
2.自定義的字符串中一定要左邊挨著<<<,寫完定界的字符串段直,一定要直接回車(空格都不可以)
3.在結(jié)尾的字符串定界中,一定要頂頭寫溶诞,和開始的字符串要一致鸯檬,并直接回車
- 使用‘’在開始的定界符號(hào)中,將支持雙引號(hào)的功能變成單引號(hào)的功能
$str = "abc"
$ssr = <<<a
this is $str demo "demo" 'demo' this is a
a
// this is abc demo "demo" 'demo' this is a
$ssr = <<<'a'
this is $str demo "demo" 'demo' this is a
a
// this is $str demo "demo" 'demo' this is a
偽類型
用于解釋說(shuō)明螺垢,了解即可
number:說(shuō)明一個(gè)參數(shù)是integer或者float
mixed:說(shuō)明一個(gè)參數(shù)可以接受多種不同的類型
callback:可以調(diào)用一個(gè)函數(shù)
類型轉(zhuǎn)換
1.強(qiáng)制轉(zhuǎn)換
(int),(integer),(bool),(string)...不包括資源類型
2.自動(dòng)轉(zhuǎn)換
小類型往大類型轉(zhuǎn)換
浮點(diǎn)型轉(zhuǎn)整的時(shí)候直接取整喧务,同時(shí)要考慮超出整型范圍的問(wèn)題會(huì)造成溢出
如果字符串是以數(shù)字開頭,轉(zhuǎn)成整型即為開頭的數(shù)字枉圃,反之為0
$a = "123hello world";
$d = "hello 123 world";
$b = 100;
$c = $a + $b;//223
$f = $d +$b;//100
局部變量
在函數(shù)之中聲明的變量是局部變量功茴,只能在函數(shù)范圍內(nèi)調(diào)用,如果需要使用哪個(gè)該變量值孽亲,必須透過(guò)return指令坎穿,將其傳回主程序塊以后做后續(xù)處理。
$a = 0;
function print_A(){
$a =3;//聲明$A為全局變量
return $a;
}
$b = print_A();
全局變量
在函數(shù)范圍外聲明的變量就是全局變量返劲。由于函數(shù)可以視為單獨(dú)的程序片段玲昧,所以局部變量會(huì)覆蓋全局變量的能見度,因此在函數(shù)中無(wú)法直接調(diào)用使用全局變量篮绿。
在函數(shù)中若要使用全局變量時(shí)孵延,必須要利用global關(guān)鍵字定義目標(biāo)變量,以告訴函數(shù)主體此變量為全局亲配。
這一點(diǎn)不同于其他語(yǔ)言尘应。
$A = "Hello !!"
function print_A(){
global $A;//聲明$A為全局變量
echo $A;
}
print_A();
靜態(tài)變量
1.在函數(shù)中聲明的靜態(tài)變量,只在第一次調(diào)用時(shí)聲明
2.第二次以后吼虎,一看是靜態(tài)變量犬钢,先到靜態(tài)區(qū)中,看一下有沒(méi)有這個(gè)變量思灰,如果有就使用娜饵,而不去再聲明。
3.靜態(tài)變量官辈,在同一個(gè)函數(shù)多次調(diào)用中共享。
function demo(){
static $a = 0;
$a++;
echo $a."<br>";
}
demo();