PHP入門筆記

定義

PHP 是一種創建動態交互性站點的強有力的服務器端腳本語言。
全稱:PHP:Hypertext Preprocessor,即"PHP:超文本預處理器"

PHP文件

PHP 文件的默認文件擴展名是 “.php”
PHP 文件可包含文本、HTML、JavaScript代碼和 PHP 代碼
PHP 代碼在服務器上執行,結果以純 HTML 形式返回給瀏覽器

作用

PHP 可以生成動態頁面內容
PHP 可以創建、打開、讀取、寫入、關閉服務器上的文件
PHP 可以收集表單數據
PHP 可以發送和接收 cookies
PHP 可以添加、刪除、修改您的數據庫中的數據
PHP 可以限制用戶訪問您的網站上的一些頁面
PHP 可以加密數據
通過 PHP,您不再限於輸出 HTML。您可以輸出圖像、PDF 文件,甚至 Flash 電影。您還可以輸出任意的文本,比如 XHTML 和 XML。

安裝

  1. 使用支持 PHP 的 Web 主機
    只要在您的 web 目錄中創建 .php 文件即可,服務器將自動爲您解析這些文件。
  2. 在安裝 Web 服務器
    安裝 PHP
    安裝數據庫,比如 MySQL

語法

PHP 腳本以 <?php 開始,以 ?> 結束:


<?php
<?php
// 這是 PHP 單行註釋

/*
這是
PHP 多行
註釋
*/
?>
?>

變量
變量以 $ 符號開始,後面跟着變量的名稱
當您賦一個文本值給變量時,請在文本值兩側加上引號。
弱類型語言,不必聲明變量類型
作用域
1、定義在函數外部的就是全局變量,它的作用域從定義處一直到文件結尾。
2、函數內定義的變量就是局部變量,它的作用域爲函數定義範圍內。
3、函數之間存在作用域互不影響。
4、函數內訪問全局變量需要 global 關鍵字或者使用 $GLOBALS[index] 數組
輸出方式
echo - 可以輸出一個或多個字符串
使用的時候可以不用加括號,也可以加上括號: echo 或 echo()
print - 只允許輸出一個字符串,返回值總爲 1
可以使用括號,也可以不使用括號: print 或 print()。
提示:echo 輸出的速度比 print 快, echo 沒有返回值,print有返回值1。
PHP EOF(heredoc) 使用說明

$a=2;
$b= <<<EOF
	"zyf"$a
	"zyf"
EOF;
echo $b; //結果連同雙引號一起輸出:"zyf"2 "zyf"
  1. 必須後接分號,否則編譯通不過。
  2. EOF 可以用任意其它字符代替,只需保證結束標識與開始標識一致。
  3. 結束標識必須頂格獨自佔一行(即必須從行首開始,前後不能銜接任何空白和字符)。
  4. 開始標識可以不帶引號或帶單雙引號,不帶引號與帶雙引號效果一致,解釋內嵌的變量和轉義符號,帶單引號則不解釋內嵌的變量和轉義符號。
  5. 當內容需要內嵌引號(單引號或雙引號)時,不需要加轉義符,本身對單雙引號轉義,此處相當與q和qq的用法。
    數據類型
    String(字符串), Integer(整型), Float(浮點型), Boolean(布爾型), Array(數組), Object(對象), NULL(空值)
    整型可以用三種格式來指定:十進制, 十六進制( 以 0x 爲前綴)或八進制(前綴爲 0)。
<?php 
$cars=array("Volvo","BMW","Toyota");  #創建了一個數組
var_dump($cars); #返回數組的數據類型和值
?>

對象
對象必須聲明。
class關鍵字聲明類對象
NULL 值表示變量沒有值
類型比較
鬆散比較:使用兩個等號 == 比較,只比較值,不比較類型。
嚴格比較:用三個等號 === 比較,除了比較值,也比較類型。
常量
常量是一個簡單值的標識符。該值在腳本中不能改變。

一個常量由英文字母、下劃線、和數字組成,但數字不能作爲首字母出現。 (常量名不需要加 $ 修飾符)。

<?php
// 區分大小寫的常量名
define("GREETING", "Hello world");
echo GREETING;    // 輸出 "HEllo world"
?>

常量是全局的
字符串變量
賦一個文本值給變量時,請記得給文本值加上單引號或者雙引號。
並置運算符 (.) 用於把兩個字符串值連接起來。
strlen() 函數返回字符串的長度(字節數)。
strpos() 函數用於在字符串內查找一個字符或一段指定的文本。
如果在字符串中找到匹配,該函數會返回第一個匹配的字符位置。如果未找到匹配,則返回 FALSE。

<?php
echo strpos("Hello world!","world");  在字符串 "Hello world!" 中查找文本 "world"
?>

三元運算符
表達式 expr1 ?: expr3 在 expr1 求值爲 TRUE 時返回 expr1,否則返回 expr3。
遍歷
for

<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
 
for($x=0;$x<$arrlength;$x++)
{
    echo $cars[$x];
    echo "<br>";
}
?>

關聯數組

//$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
//or:

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
echo "Peter is " . $age['Peter'] . " years old.";
//Peter is 35 years old.

** 數組排序函數**
sort() - 對數組進行升序排列
rsort() - 對數組進行降序排列
asort() - 根據關聯數組的值,對數組進行升序排列
ksort() - 根據關聯數組的鍵,對數組進行升序排列
arsort() - 根據關聯數組的值,對數組進行降序排列
krsort() - 根據關聯數組的鍵,對數組進行降序排列
字母,數字
** 超級全局變量**
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
foreach 循環
每進行一次循環,當前數組元素的值就會被賦值給 $value 變量(數組指針會逐一地移動),在進行下一次循環時,您將看到數組中的下一個值。

foreach ($array as $value)
{
    要執行代碼;
}

函數

函數是通過調用函數來執行的。
PHP 函數準則:

函數的名稱應該提示出它的功能
函數名稱以字母或下劃線開頭(不能以數字開頭)

<?php
function functionName()
{
    // 要執行的代碼
}
?>

爲了給函數添加更多的功能,我們可以添加參數,參數類似變量。

參數就在函數名稱後面的一個括號內指定。
如需讓函數返回一個值,請使用 return 語句。
魔術常量
LINE
文件中的當前行號。
FILE
文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。
DIR
文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。
FUNCTION
本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
CLASS
自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。
在 PHP 4 中該值總是小寫字母的。

PHP 命名空間(namespace)

解決問題

  1. 用戶編寫的代碼與PHP內部的類/函數/常量或第三方類/函數/常量之間的名字衝突。
  2. 爲很長的標識符名稱(通常是爲了緩解第一類問題而定義的)創建一個別名(或簡短)的名稱,提高源代碼的可讀性。
    定義命名空間
    命名空間通過關鍵字namespace 來聲明。如果一個文件中包含命名空間,它必須在其它所有代碼之前聲明命名空間。
    子命名空間
    與目錄和文件的關係很像,PHP 命名空間也允許指定層次化的命名空間的名稱。
    namespace MyProject\Sub\Level; //聲明分層次的單個命名空間
    命名空間使用
    未完待續

面向對象

類 − 定義了一件事物的抽象特點。類的定義包含了數據的形式以及對數據的操作。

對象 − 是類的實例。

成員變量 − 定義在類內部的變量。該變量的值對外是不可見的,但是可以通過成員函數訪問,在類被實例化爲對象後,該變量即可稱爲對象的屬性。

成員函數 − 定義在類的內部,可用於訪問對象的數據。

繼承 − 繼承性是子類自動共享父類數據結構和方法的機制,這是類之間的一種關係。在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作爲自己的內容,並加入若干新的內容。

父類 − 一個類被其他類繼承,可將該類稱爲父類,或基類,或超類。

子類 − 一個類繼承其他類稱爲子類,也可稱爲派生類。

多態 − 多態性是指相同的函數或方法可作用於多種類型的對象上並獲得不同的結果。不同的對象,收到同一消息可以產生不同的結果,這種現象稱爲多態性。

重載 − 簡單說,就是函數或者方法有同樣的名稱,但是參數列表不相同的情形,這樣的同名不同參數的函數或者方法之間,互相稱之爲重載函數或者方法。

抽象性 − 抽象性是指將具有一致的數據結構(屬性)和行爲(操作)的對象抽象成類。一個類就是這樣一種抽象,它反映了與應用有關的重要性質,而忽略其他一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。

封裝 − 封裝是指將現實世界中存在的某個客體的屬性與行爲綁定在一起,並放置在一個邏輯單元內。

構造函數 − 主要用來在創建對象時初始化對象, 即爲對象成員變量賦初始值,總與new運算符一起使用在創建對象的語句中。

析構函數 − 析構函數(destructor) 與構造函數相反,當對象結束其生命週期時(例如對象所在的函數已調用完畢),系統自動執行析構函數。析構函數往往用來做"清理善後" 的工作(例如在建立對象時用new開闢了一片內存空間,應在退出前在析構函數中用delete釋放)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章