前言:PHP筆記匹中,屬于個人的學(xué)習(xí)、理解豪诲、收集顶捷、整理。分享于此屎篱,一同共勉服赎,如果有誤,敬請告之交播,吾必改之重虑。
古人云:理論還是要靠實(shí)踐來檢驗(yàn)∏厥浚基礎(chǔ)知識就不多說了嚎尤,推薦個php教程吧,很適合新手查閱伍宦。
一、php變量的數(shù)據(jù)類型
共八種:整數(shù)型(int)乏梁、浮點(diǎn)型(float)次洼、布爾型(boolean)遇骑、字符串(string)、數(shù)組(array)、對象(object)亥啦、空類型(null)和資源類型(resource)炭剪;
Note:其中數(shù)組和對象是復(fù)合類型;空類型和資源類型是特殊類型翔脱。
- int類型:整數(shù)類型為正數(shù)奴拦、負(fù)數(shù)和0届吁,正常理解的整數(shù)。
- float類型:浮點(diǎn)型為正常理解的小數(shù)疚沐、包括正負(fù)小數(shù)暂氯。
- string類型:加上引號的數(shù)據(jù)一般為字符型(雙引號可以解析變量、單引號則不能)亮蛔。
- array類型:數(shù)組為一組或多組數(shù)據(jù)組成的,數(shù)組數(shù)據(jù)可以為任何類型究流。
- object類型:對象,可以通過New語句實(shí)例化一個類齿尽,常見于類與對象的調(diào)用灯节。
- boolean類型:布爾只有兩個值,真(true)與假(false)(一般用于流程判斷)。
- null類型:值為空(特殊的 NULL 值表示一個變量沒有值炎疆。NULL 類型唯一可能的值就是 NULL。)形入。
- resource類型:為資源類型,沒有特定的值浓若,可以是圖片蛇数,視頻,數(shù)據(jù)等耳舅。
重點(diǎn)看實(shí)例:
<?php
$bool = true;
$str = "foo";
$int = 12;
echo gettype($bool);//prints out "boolean"
echo "<hr/>";
echo gettype($str);//prints out "string"
echo "<hr/>";
echo gettype($int);//prints out "integer"
echo "<hr/>";
$bool = 12;
echo gettype($bool);//prints out "integer"
?>
注意:越到后邊文字描述就越少,建議先去看下教程了解下基礎(chǔ)馏予,我主要是為了動手操作,主要目的就是為了操作霞丧,實(shí)戰(zhàn)蚯妇,所以后邊實(shí)例會越來越多
二敷燎、PHP中與眾不同continue
continue與眾不同之處在于接受一個可選的數(shù)字參數(shù)來決定跳過幾重循環(huán)到循環(huán)結(jié)尾箩言。
<?php
#php_continue.php
/*
在php中,continue 在循環(huán)結(jié)構(gòu)用用來跳過本次循環(huán)中剩余的代碼并開始執(zhí)行下一次循環(huán)陨收。
這一點(diǎn)和其他語言是一致的,
不過拄衰,另有妙處:continue 接受一個可選的數(shù)字參數(shù)來決定跳過幾重循環(huán)到循環(huán)結(jié)尾饵骨。
*/
$i = 0;
$j = 0;
while ($i++ < 3) {//level 3
echo "Outer /n";
while (1) {//level 2
echo " Middle /n";
while (1) {//level 1
echo " Inner /n";
continue 3;
}
echo "This never gets output. /n";
}
echo "Neither does this. /n";
$j++;
//after runs continue 3,it comes to the end of level 3
}
echo "/$j=$j";//output: $j=0
?>
三、PHP中的數(shù)組
<?php
#php_array.php
/*默認(rèn)的方式下妖混,php的array的key是非負(fù)整數(shù)轮洋,這種情形和多數(shù)語言如c,c++,java中的數(shù)組是一致的
*從這點(diǎn)看,java中的數(shù)組其實(shí)是php中數(shù)組的一種默認(rèn)的方式弊予;而php的array則還有java中Map類的特
性:key-value×phpmanual中的說法“PHP 中的數(shù)組實(shí)際上是一個有序圖。圖是一種把 values 映射
到 keys 的類型”
*/
$array=array("0","1","2","3","4","5");
print_r($array);
/*
output:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
)
*/
//用 count() 函數(shù)來數(shù)出數(shù)組中元素的個數(shù)
for ($i=0,$size=count($array);$i<$size;$i++)
{
echo $array[$i];
echo "/n";
}
/*
output:
0
1
2
3
4
5
*/
/*use foreach to loop*/
echo "foreach to loop/n";
foreach($array as $temp){
echo($temp);
echo "/n";
}
//output as above
/* foreach example 1: value only */
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
print "Current value of /$a: $v./n";//這里使用了轉(zhuǎn)義字符/误褪,使得$a作為一個字串輸出
}
/*
output:
Current value of $a: 1.
Current value of $a: 2.
Current value of $a: 3.
Current value of $a: 17.
*/
/* foreach example 2: value (with key printed for illustration) */
$a = array (1, 2, 3, 17);
$i = 0; /* for illustrative purposes only */
foreach ($a as $v) {
print "/$a[$i] => $v./n";
$i++;
}
$array2=array("a"=>"avalue","b"=>"bvalue","c"=>"b");
print_r($array2);
echo "****/n";
echo $array2[$array2["c"]];//
//echo $array2[$array2[2]];//企圖像java那樣使用數(shù)組下標(biāo)方式兽间,是無效的
echo "/n***/n";
/*output:
****
bvalue
***
*/
$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"]; // bar
echo $arr[12]; // 1
?>
四斋扰、可變變量、字符串運(yùn)算符和數(shù)組運(yùn)算符:(相異于其他語言的部分)
<?php
#php的可變變量
/*可變變量就是變量名可以動態(tài)的設(shè)置和使用的變量传货。
一個可變變量獲取了一個普通變量的值作為這個可變變量的變量名。
因?yàn)槠胀ㄗ兞康闹凳强勺兊拇冢钥勺冏兞康淖兞棵彩强勺兊摹?*/
//可變變量適合在什么場合使用呢粮宛?
$a = "hello";//定義一個普通變量
$$a = "world";//定義一個可變變量
echo "$a/n";//output:hello
echo "${$a}/n";//使用可變變量
//同echo "$hello/n";//output:world
echo "$hello/n";
?>
<?php
#php的字符串運(yùn)算符
//連接運(yùn)算符(“.”)
$a="first";
$b=$a."==>second";//now $b is "first==>second"
echo "$b/n";
//連接賦值運(yùn)算符(“.=”)
//the same to $a=$a."==>second"
$a.="==>second";//now &a is "first==>second"
echo "$a/n";
/*其實(shí)可以理解為就只有一種,即連接運(yùn)算符
這里的點(diǎn)(".")連接運(yùn)算符和java語言中的字符串連接符("+")是類似的。*/
?>
<?php
#php的數(shù)組運(yùn)算符:+
/* PHP 僅有的一個數(shù)組運(yùn)算符是 + 運(yùn)算符忧饭。
它把右邊的數(shù)組附加到左邊的數(shù)組后筷畦,但是重復(fù)的鍵值不會被覆蓋。
亦即鳖宾,以左邊的數(shù)組為主導(dǎo),若附加其上的(右邊的)數(shù)組中有與其key重復(fù)的部分將被忽略
*/
$a = array("a" => "apple", "b" => "banana");
$b = array("a" =>"pear", "b" => "strawberry", "c" => "cherry");
$a1=array("c"=>"a1_cherry","d"=>"a1=d");
$c = $a + $b;
var_dump($c);
/*output:
array(3) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["c"]=>
string(6) "cherry"
}
*/
$d = $a + $b+$a1;
var_dump($d);
/*output:
array(4) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["c"]=>
string(6) "cherry"
["d"]=>
string(4) "a1=d"
}
*/
?>
五渔肩、NULL
PHPmanual關(guān)于NULL的描述:"
NULL
特殊的 NULL 值表示一個變量沒有值拇惋。NULL 類型唯一可能的值就是 NULL。
在下列情況下一個變量被認(rèn)為是 NULL:
* 被賦值為 NULL栏饮。
* 尚未被賦值磷仰。
* 被 unset()。
NULL 類型只有一個值灶平,就是大小寫敏感的關(guān)鍵字 NULL。
"
好混亂啊罐监,在javascript中還有關(guān)鍵字:var用來聲明變量瞒爬,php沒有沟堡,美元符號($)后面跟個合法的字
符串矢空,一個php的變量就誕生了,如上所說屁药,它尚未被賦值,應(yīng)該被認(rèn)為是:NULL复亏。使用strlen()試圖將
其當(dāng)作string缭嫡,并算出它的長度,這樣做械巡,php引擎不認(rèn)為是錯用。
<?php
if(is_null($none))
print "length=".strlen($none)."/n";//can output:length=0
else
print "undefined variable/n";//can not come here
?>
<?
//PHPmanual說明:(1)is_null -- 檢測變量是否為 NULL
//(2)NULL 類型只有一個值有勾,就是大小寫敏感的關(guān)鍵字 NULL
$fo=null;
if(is_null($fo))
{//依據(jù)上述(2)古程,并非大寫的NULL,本不該執(zhí)行此處的挣磨,實(shí)際上并非如此,why塘砸?
echo "/$fo=null is NULL/n";//output:$fo=null is NULL
}
$foo=NULL;
if (is_null($f)) {
echo "/$f=NULL is also NULL";//out put:$f=NULL is also NULL
}
?>
牛人說了晤锥,重要的事說三遍:
學(xué)習(xí)語言要吸收理論知識,掌握其原理女轿,加上多動手實(shí)踐壕翩,融會貫通,必成大氣放妈!
學(xué)習(xí)語言要吸收理論知識荐操,掌握其原理珍策,加上多動手實(shí)踐,融會貫通,必成大氣唉堪!
學(xué)習(xí)語言要吸收理論知識,掌握其原理链方,加上多動手實(shí)踐灶搜,融會貫通,必成大氣割卖!