一、何為php
PHP,即“PHP: Hypertext Preprocessor”,是一種被廣泛應(yīng)用的開源通用腳本語(yǔ)言,尤其適用于 Web 開發(fā)并可嵌入 HTML 中去。它的語(yǔ)法利用了 C、Java 和 Perl,易于學(xué)習(xí)。該語(yǔ)言的主要目標(biāo)是允許 web 開發(fā)人員快速編寫動(dòng)態(tài)生成的 web 頁(yè)面,但 PHP 的用途遠(yuǎn)不只于此。
簡(jiǎn)單來(lái)說(shuō),就是php是一種腳本語(yǔ)言,可以做很多事情。①服務(wù)器端腳本 ②命令行腳本 ③編寫桌面程序
二、開始php
(1)下載php解釋器,其實(shí)win下面,最簡(jiǎn)單的還是wamp這個(gè)軟件,下載下來(lái)什么都有了...
(2)win下面貌似還需要,mscvr110.dll 這個(gè)鏈接庫(kù),vc2012運(yùn)行庫(kù),安裝即可
(3)ide,無(wú)恥的使用了 phpStorm,等哥有錢了一定給你補(bǔ)回來(lái), so...
User: newaspLicense:===== LICENSE BEGIN =====14617-1204201000001xrVkhnPuM!Bd!vYtgydcusnqtmM!hZWoGg"DprWxZCBwsy8T91O7MRuNVHtrbzv8O9mmoLvtijcHSSE7i5Jr!===== LICENSE END ====
三、入門引導(dǎo)
(1)簡(jiǎn)單的輸出
<?php/** * Created by PhpStorm. * User: LENOVO * Date: 2014/9/28 * Time: 14:51 */// 輸出PHP詳細(xì)信息echo phpinfo(); //C:/php-5.6.1-Win32-VC11-x86/php.exe D:/dizzy/php_test/index.php//phpinfo()//PHP Version => 5.6.1////System => Windows NT LENOVO-PC 6.1 build 7600 (Windows 7 Ultimate Edition) i586//Build Date => Sep 24 2014 18:54:12//Compiler => MSVC11 (Visual C++ 2012)//Architecture => x86//Configure Command => cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=c:/php-sdk/oracle/x86/instantclient_12_1/sdk,shared" "--with-oci8-12c=c:/php-sdk/oracle/x86/instantclient_12_1/sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo"//Server API => Command Line Interface
(2)簡(jiǎn)單的表單處理
// 一個(gè)簡(jiǎn)單的html表單<form action="action.php" method="post"> <p>姓名: <input type="text" name="name" /></p> <p>年齡: <input type="text" name="age" /></p> <p><input type="submit" /></p></form> // action.php 接收表單數(shù)據(jù), 使用超全局變量%_POST["name"]%_POST["age"]<?php echo htmlspecialchars($_POST['name']); ?><?php echo (int)$_POST['age']; ?>// 這便是最簡(jiǎn)單的表單提交,及數(shù)據(jù)接收
四、基本語(yǔ)法
(1)PHP標(biāo)記
<?php echo "Hello World!"; // 當(dāng)文件為純PHP時(shí),最好在末尾刪除PHP結(jié)束標(biāo)記//?>
(2)從HTML中分離
// 在一對(duì)開始和結(jié)束之外的內(nèi)容,都會(huì)被PHP解釋器忽略。也就是html標(biāo)簽和PHP代碼混合的那種,跟jsp,asp一樣...<p>This is going to be ignored by PHP and displayed by the browser.</p><?php echo 'While this is going to be parsed.'; ?><p>This will also be ignored by PHP and displayed by the browser.</p> // 使用條件,高級(jí)分離<?php if ($expression == true): ?> This will show if the expression is true.<?php else: ?> Otherwise this will show.<?php endif; ?>
(3)指令分隔符,注釋
PHP需要在每個(gè)語(yǔ)句后面用分隔符結(jié)束指令。
注釋: // 或 /* ... */ 但是,*/ 會(huì)匹配最近的那個(gè),切記!切記!
五、類型
PHP支持8種原始數(shù)據(jù)類型。
- 四種標(biāo)量類型:boolean(布爾型),integer(整型),float(浮點(diǎn)型,double),string(字符串)
- 兩種復(fù)合類型:array(數(shù)組),object(對(duì)象)
- 兩種特殊類型:resource(資源),NULL(無(wú)類型)
<?php$a_bool = TRUE; // a boolean$a_str = "foo"; // a string$a_str2 = 'foo'; // a string$an_int = 12; // an integer echo gettype($a_bool); // prints out: booleanecho gettype($a_str); // prints out: string // If this is an integer, increment it by fourif (is_int($an_int)) { $an_int += 4;} // If $bool is a string, print it out// (does not print out anything)if (is_string($a_bool)) { echo "String: $a_bool";}?>
(1)Boolean 布爾類型
可以為TRUE或FALSE,不區(qū)分大小寫。
一般非0,即為TRUE。
(2)Integer 整型
整型可以使用十進(jìn)制,十六進(jìn)制,八進(jìn)制或二進(jìn)制表示。八進(jìn)制前面必須加0(零),十六進(jìn)制加0x,二進(jìn)制加0b。
如果給定的一個(gè)數(shù)超出了interger的范圍,將會(huì)被解釋為float。同樣運(yùn)算結(jié)果超出integer范圍,同樣如此。
php沒有整除運(yùn)算符,1/2 將產(chǎn)生出 float 0.5。可以強(qiáng)制轉(zhuǎn)換為integer 或使用round() 更好的四舍五入。
echo (int)2.9; // 輸出 2echo round(2.555, 2) // 輸出 2.56// 決不要將未知的分?jǐn)?shù)強(qiáng)制轉(zhuǎn)換為 integer,這樣有時(shí)會(huì)導(dǎo)致不可預(yù)料的結(jié)果。<?phpecho (int) ( (0.1+0.7) * 10 ); // 顯示 7!?>
(3)Float 浮點(diǎn)型(double)
浮點(diǎn)型,也叫浮點(diǎn)數(shù)float,雙精度double, 實(shí)數(shù)real。
<?php$a = 1.234;$b = 1.2e3;$c = 7E-10;?>
(4)String 字符轉(zhuǎn)
一個(gè)字符串string,就是由一系列的字符組成,其中每個(gè)字符等同于一個(gè)字節(jié)。這就意味著php只能支持256個(gè)字符集,因此不支持Unicode。
string最大可以達(dá)到2GB。
<?php$a = 123;echo '$a'; // 輸出 $aecho "$a"; // 輸出 123, 轉(zhuǎn)義字符 '/' $str = <<<'EOD'Example of stringspanning multiple linesusing nowdoc syntax.EOD; ?>
(5)Array 數(shù)組
php中的數(shù)組,實(shí)際上是一個(gè)有序序列。映射是把values關(guān)聯(lián)到keys的類型。
由于數(shù)組元素的值也可以說(shuō)是另外的數(shù)組,樹形結(jié)構(gòu)和多維數(shù)組也是允許的。
<?php$array = array( "foo" => "bar", "bar" => "foo",); // 自PHP 5.4 起$array = [ "foo" => "bar", "bar" => "foo",]// key 可以是 integer 或 string 類型// key 值為可選項(xiàng), 如果未指定,則使用之前用過(guò)最大的integer鍵名加上1作為新鍵名?> // 要修改某個(gè)值,通過(guò)其鍵名給該單元賦一個(gè)新值。// 要?jiǎng)h除某個(gè)鍵值對(duì),對(duì)其調(diào)用 unset() 函數(shù)。
使用 unset() 需要注意,此時(shí)數(shù)組不會(huì)重建索引。需要重建索引,可以使用 array_values() 函數(shù)。
數(shù)組計(jì)算總數(shù): 使用 count() 函數(shù)
(6)Object 對(duì)象
<?phpclass foo{ function do_foo(){ echo "Doing foo."; }}// 用 new 實(shí)例化一個(gè)類$f = new foo;$f->do_foo;
(7)Resource 資源類型
資源 resource 是一種特殊的變量,保存了到外部資源的一個(gè)引用。資源是通過(guò)專門的函數(shù)來(lái)建立和使用的。
(8)NULL
特殊的NULL 表示一個(gè)變量沒有值。NULL類型唯一可能的值就是NULL。
可被認(rèn)定為NULL的變量:①被賦值為NULL ②尚未被賦值 ③被unset
(9)Callback 回調(diào)類型
自PHP5.4 起,可以使用 callable 類型 指定回調(diào)類型 callback。
六、變量
php中變量用一個(gè)美元符號(hào) $ 后面跟變量名來(lái)表示的。區(qū)分大小寫。
變量默認(rèn)總是傳值賦值。
<?php $a = 1;// 值傳遞賦值 $b = $a// 引用賦值$c = &$a // global 關(guān)鍵字global ; $GLOBALS