來(lái)曆
1: 當解析一(yī)個(gè)文(wén)件(π¥γ©jiàn)時(shí),PHP 會(huì)尋找起始和(hé)結束标記:&nε✘bsp;<?php 和(hé) ?> ,php能(néng)夠潛入任何文(wén)件(jiàn)中, php标記∑♦之間(jiān)的(de)代碼能(néng)被php解析器(qì)解析,返回給前端
2: php也(yě)允許使用(yòng)短(duǎn)ε♥®标記<? ?> , 需要(yào♣₹ )修改php.ini中的(de)short_open_ta☆¥g指令, 也(yě)可(kě)以在編譯php的(de)時(s ←hí)候使用(yòng) --enable-short-tags 參數(shù), 如(rú)果是(shì)php5.4以後的(de)版本, 默認開(kāi✘♦≥•)啓短(duǎn)标記,
3:如(rú)果php文(wén)件(jiàn)內✔>(nèi)部內(nèi)容為(wèi)純php代碼, 那(nà)就(jiù)不' (bù)需要(yào)添加結束标記。
4:注意:如(rú)果php的(de)結束标記後面有(yǒu)空(kōng)格或者換行(xí♣™™ng),會(huì)被php解析發送到(dào)前端, 為(wèi)了(le)避免這(zhè)種問α∑(wèn)題, 可(kě)以養成不(bù)寫結束标記的(de)習(xí)慣
可(kě)以将php代碼和(hé)html分(fēn)離(lí), 這(zhè)種寫法不(↓δbù)是(shì)很(hěn)常用(yòng):
<?php if(1==1) :?> "1==1"; <?php else: ?> "1==0"; <?php endif; ?>
利用(yòng)短(duǎn)标記輸出變量, 把echo替換成 = 号即可(kě):
<? $a = 1; $b = 2; ?> <?= $a + $b ?>
PHP的(de)基本數(shù)據類型
四種基本類型: boolean, integer, float(<•♠α double, float和(hé)double是(shì)同時(shíλβΩ)存在的(de) ), string
三種複合類型: array,object, callback
特殊類型:resource, NULL
類型之間(jiān)的(de)轉換:
該語言的(de)類型轉換和(hé)C語言和(hé)java一(yī)摸一(yī)樣, ↓φ☆在變量前添加一(yī)個(gè)小(xiǎo)闊号,小(xiǎo)括号內(nèi)部為(★ ≈∑wèi)轉換的(de)數(shù)據類型:
<?php $foo = (int) $bar; $foo = ( int ) $bar; ?>
也(yě)可(kě)以使用(yòng)gettype和(hé)settype進≤≤行(xíng)類型的(de)轉換:
<?php $var = 1234; settype($var,"string"); echo $var." ".gettype($var); ?>
基本類型擴展
布爾值:true, false
數(shù)字int:ℤ = {..., -2, -1, 0, σ& 1, 2, ...} 集合中的(de)數>™(shù)字, 隻要(yào)整數(shù), 二進制(↓εzhì)開(kāi)頭比如(rú):0b111111, 十六進制(z€±'↔hì)的(de)整數(shù),以0x開(kāi)頭比如(rú):0x←↓>¶abc;
浮點數(shù)float(double):隻要(yào)是(shì)有(yǒβ₹±✔u)小(xiǎo)數(shù)位的(de)都(dōu)是(shì)浮點數(shùΩ<£®), 如(rú)果要(yào)做(zuò)小(xiǎ✔→±o)數(shù)位的(de)操作(zuò),可(kě)以用(yòng)浮動數(s§γ<®hù), 但(dàn)是(shì)還(hái)是(shì)會(huì)存在精度問(w ©èn)題;
字符串細說(shuō):
雙引号之間(jiān)的(de)變量會(huì)被解析:
<?php $user = "test user"; echo "my test user is $user";
更加細緻的(de)方法是(shì)用(yòng)花(huā)括号, $♥€>δ符号放(fàng)在花(huā)括号外(wài)面或者花(huā)括号裡(l¶₩ǐ)面都(dōu)可(kě)以:
<?php $user = "test user"; echo "my test user is ${user}"; echo "my test user is {$user}";
字符串可(kě)以使用(yòng)下(xià)标索引快(ku↕₹ài)速獲取字符, 使用(yòng){}或者[]都(dōu)可(k§ ©§ě)以
<?php $user = "abcdef"; echo $user{0}; echo $user[0];
可(kě)以利用(yòng){}快(kuài)速删除或者修改,或者增加字符
<?php $user = "abcdef"; //删除第二個(gè)字符 $user[1]=""; //編輯第二個(gè)字符 $user[1]="2" //在索引為(wèi)29的(de)位置新增一(yī)個(gè)∞π$ 字符 , 該字符串數(shù)組會(huì)自(zì)動變長(cháng) $user{30} = "d"; echo $user;
headdoc的(de)寫法相(xiàng)當于php雙引号的(÷↑de)寫法:
<?php $a = "test"; echo "<div> \"{$a}\" </div> "; //headdoc相(xiàng)當于雙引号的(de)寫法 echo <<<EOF <div> "{$a}" </div>\n EOF;
nowdoc相(xiàng)當于php單引号的(de)寫'₽✔法, 所有(yǒu)的(de)數(shù)據都(dōu)不(bùβ♦♦✔)被解析:
<?php echo <<<'EOD' <div>{$a}</div> EOD;
php字符串的(de)常用(yòng)函數(shù):http://naotu.baidu.com/file/1e46776d03f11206f φ☆≤c2254b36e8e0ee1?token=0ad794e52225d75Ωφ1
數(shù)組對(duì)象
php的(de)數(shù)組即是(shì)數(shù)組也(yě)是(sσ≠hì)對(duì)象(hashmap),索引自(zì)增, 對(duì)象的(de)key值也(®≥λyě)是(shì)唯一(yī)的(de)
php5.4起, 可(kě)以使用(yòng)中括号進行(xíng)變量的≤→(de)聲明(míng)
$arr = ["a","b"]
對(duì)象的(de)key 可(kě)以是(shì) integer 或者 string。value 可(kě)以是(shì)任意類型,§∑ 沒有(yǒu)鍵名的(de)索引默認為(wèi)當前數(shù)組最大(dà)索引+γ®1, 如(rú)果沒有(yǒu)最大(dà)索引, 鍵名為(↔©ελwèi)0開(kāi)始, 穩步遞增
如(rú)果删除數(shù)組中的(de)數(shù)據, 并給數(shù)組添加數(shù)←₩★據, 索引并不(bù)會(huì)從(cóng)頭開(kāi)始:
<?php $arr = array('a','b','c','d'); foreach( $arr as $i => $it ) { unset( $arr[$i]); } ₽§<$arr[] = 'e'; var_dump( $arr ); ?>
通(tōng)過array_value重建索引:
<?php $arr = array('a','b','c','d'); foreach( $arr as $i => $it ) { unset( $arr[$i]); } $arr1 = array_values($arr); $arr1[] = 'e'; var_dump( $arr1 ); ?>
數(shù)組的(de)賦值是(shì)複制(zhì), 并不(bù)是(shì)引用≠(yòng), 仿佛C語言中調用(yòng)了(le)數(sαβ£hù)組的(de)複制(zhì)構造函數(shù), 如♥(rú)果要(yào)讓數(shù)組出現(xiàn)引用(yòng)關系, 需要(yà♥☆£λo)&,引用(yòng)符:
<?php $arr = array('a','b','c','d'); $arr1 = $arr; $arr1[0] = "0"; var_dump($arr1); printf("輸出之前的(de)$arr:\n"); var_dump($arr); ?>
函數(shù)
<?php class Fn{ function dofn(){ ♣Ω printf("do i"); } }; $fn = new Fn(); $fn->dofn();
如(rú)果數(shù)組轉化(huà)為(wèi)對(du÷®×ì)象, 隻能(néng)訪問(wèn)對(duì)象的(de)索引的'✔✔→(de)屬性, 索引的(de)屬性無法訪問(wèn), 必須通(tōng)過 fo÷↑↔reach 叠代訪問(wèn):
<?php $arr = ["a"=>"aa","b","c","d"]; var_dump($arr); $obj = (object)$arr; echo $obj->{"a"}; //輸出aa echo $obj->{"1"}; //無輸出
如(rú)果是(shì)基本的(de)數(shù)據屬性, 轉化(huà)為✔÷(wèi)對(duì)象, 通(tōng)過訪問(wèn)對(duì)象的(de)sc✔π alar,可(kě)以獲取到(dào)原始數(shù)據:
<?php $obj = (object) 'nihao'; echo $obj->scalar; //輸出 nihao
資源類型
由于資源類型變量保存有(yǒu)為(wèi)打開(kāi)文(wén)件§¶&(jiàn)、數(shù)據庫連接、圖形畫(huà)布區(qū)域等的(de)特殊句柄,因此将☆₹£δ其它類型的(de)值轉換為(wèi)資源沒有(yǒu)•∏ 意義。
回調函數(shù)
回調函數(shù)像是(shì)java的(de)反射, 通(tōσ<♣ng)過一(yī)個(gè)字符串即可(kě)執行(xíng)一(yī)個(gè)函數( ♣shù):
<?php function fn(){ echo "fn is fn\n"; } call_user_func("fn"); class Fn{ function en(){ echo "Fn->en\n"; } } $f = new Fn(); call_user_func(array($f,"en"));
匿名函數(shù),函數(shù)本無名, 隻是(≥¶∞shì)把函數(shù)賦給一(yī)個(gè)變量:
<?php $fn = function() { echo "fn\n"; }; function testClosure(Closur e $callback) { echo "run run\n"; $callback(); } testClos✘≈ure( $fn );
作(zuò)者: NONO
出處:http://www.cnblogs.com/diligen σceday/
企業(yè)網站(zhàn):/
開(kāi)源博客:http://www.github.com/sqqihao
QQ:287101329
微(wēi)信:18101055830