標籤:服務 資料 touch 構造 data ons count 中文名 chrome
初探PHP
雖然說前後端分離,但作為前端還是要跟資料打交道的,所以對後台語言的瞭解還是很有必要的。今天要學的就是PHP。
什麼是PHP?
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本前置處理器”)是一種通用開源指令碼語言。文法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的文法混合了C、Java、Perl以及PHP自創的文法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態網頁面與其他的程式設計語言相比,PHP是將程式嵌入到HTML(標準通用標記語言 (SGML)下的一個應用)文檔中去執行,執行效率比完全產生HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和最佳化代碼運行,使代碼運行更快。
基本文法:
變數:建立一個變數用$標誌符聲明(PHP會根據$標識符識別變數),但變數本身不包括$標識符。
輸出:PHP的輸出語句有2條: 一條是 echo語句 可以一次性輸出任意條語句 ;一條是print語句,一次只能輸出一條語句。2者的區別:echo執行速度快,沒有傳回值; print執行速度較慢(是因為有傳回值 傳回值總為1)。店長推薦echo輸出語句
拼接字串(共置):PHP使用【.】來拼接字串(跟JavaScript有很大的區別,注意區分)
全域變數和局部變數:在函數內部的變數稱為局部變數,在函數外部的變數稱為全域變數。函數內部是不能直接存取到函數外部的變數的(這跟JavaScript有很大的區別,注意區分, 但可以使用$GLOBALS數組訪問
<?php $x=‘global x‘; function myTest(){ //echo $x;//報錯 //正確寫法 echo $GLOBALS[‘x‘]; //在函數中建立全域變數 $GLOBALS[‘y‘] = $GLOBALS[‘x‘]; } myTest(); echo $y;?>
chrome中顯示:
關鍵字global:用於函數內訪問全域變數 在函內調用全域變數,除了使用$GLOBAL數組,還可以在變數前加上global關鍵字
<?php $x=5; $y=10; function myTest(){ global $x,$y; $y=$x+$y; } myTest(); echo $y; // 輸出 15?>
chrome中顯示:
關鍵詞static:當函數執行完畢時,內部的變數通常會被刪除以減少記憶體的使用,但如果要指定某個局部變數不被刪除,可以在第一次聲明變數時使用static關鍵字
<?phpfunction myTest(){ static $x=0; echo $x; $x++;}myTest();//=>0echo ‘<br>‘;echo ‘<br>‘;myTest();//=>1echo ‘<br>‘;echo ‘<br>‘;myTest();//=>2//變數不被刪除的結果是:每次執行函數都在原來的基礎上+1?>
chrome中顯示:
超級全域變數:在指令碼任何地方都可以訪問的變數
1.$GLOBALS
2.$_POST/$_GET(被廣泛運用於表單資料收集和ajax請求)
3.$_COOKIE 用於收集前端發過來的cookie資料
4.$_REQUEST 該變數包含$_COOKIE $_POST/$_GET的內容
5.$_SESSION 伺服器版的cookie
常量:
1.命名規則與變數一致,但常量名不需要加 $ 修飾符。
2.常量值被定義後,在指令碼的其他任何地方都不能被改變。
3.預設是全域變數,可以在整個啟動並執行指令碼的任何地方使用。
4.常量名建議全部大寫
格式:define(name,value[,case_insensitive]) name:必選參數,常量名稱,即標誌符。 value:必選參數,常量的值。case_insensitive :選擇性參數,如果設定為 TRUE,該常量則大小寫不敏感。預設是大小寫敏感的。
執行個體: define("ENNAME", "laoxie");
數組:PHP的數組形式和JavaScript較大的區別;這裡拿出來說一下。首先:PHP數組是有類型的:數值數組--帶有數字索引值的數組 關聯陣列 --帶有指定的鍵的數組,每個鍵關聯一個值 多維陣列--包含一個數組或多個數組的數組。 在PHP中,使用array()函數建立數組 echo是不能直接列印數組的(需要用到json_enconde()轉換為字串)
<?php //數值數組 $cars=array("Volvo","BMW","Toyota"); //關聯陣列 $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); ?>
關於數組的方法有:
擷取數組的長度:count()
遍曆數組:for / foreach()
<?php //遍曆數值數組:for迴圈 $cars=array("Volvo","BMW","Toyota"); $arrlength=count($cars); for($x=0;$x<$arrlength;$x++){ echo $cars[$x] . "<br>"; } //遍曆關聯陣列:foreach $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value){ echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; }?>
在chrome中顯示:
物件導向:PHP的物件導向跟JavaScript也有很大的不同。
類:定義一個類使用class關鍵字 加上類名 類名後緊跟一對大括弧({}),在括弧內可以定義變數和方法。類的變數使用var聲明 裡面的函數定義跟JavaScript的函數定義類似。
<?php class Person{ // 成員變數 var $name; var $age = 18; //成員函數 function setName($name){ $this->name = $name; } function getAge(){ return $this->age; } }?>
執行個體化對象:$p = new Person;
調用成員屬性/方法:使用“->”(類似JavaScript的【.】)調用 $p->setName(‘Tom‘); $p->name;
建構函式: __construct建構函式是一種特殊的方法。主要是用來建立對象時,初始化對象 聲明方式:
function __constrcut($par1,$par2..){#code}
構析函數:__destruct構析函數是與建構函式相反,當對象結束生命週期時(例如對象所在的函數已調用完畢),系統會自動執行構析函數 註:一個類只用存在一個構析函數。 聲明方式: function __destruct(){#code}
存取控制:public(公有,預設)--公有的類成員可以在任何地方被訪問 聲明方式: var $par
private(私人)--私人成員只能在類內部才能被訪問 聲明方式:private $par
protected(受保護的) --受保護的類成員只能在類內部,子類,父類中訪問 聲明方式:protected $par
static(靜態) --聲明類屬性或方法為靜態,之內由類訪問,不能被執行個體化對象訪問 聲明方式:static $name
訪問方式:類名::方法/屬性(很特殊,不是用【->】訪問的)
PS: - 類屬性必須定義為公有,受保護,私人之一。如果用 var 定義,則被視為公有。
- 類中的方法可以被定義為公有,私人或受保護。如果沒有設定這些關鍵字,則該方法預設為公有。
繼承:使用關鍵字 extends 來繼承一個類,繼承後子類就擁有父類的屬性和方法(私人除外)
格式如下:
class Man extends Person { // 新增成員函數 function setAge($age){ $this->age = $age; } //重寫方法 function setName($name){ $this->name = $name; return $name; }}
產生動態網頁面:這涉及到幾個方面---表單提交:$_POST、$_GET、$_REQUEST; 會話:session 關於session的幾個方法:session_start()---啟動新會話 session_destory()---銷毀一個會話的全部資料 time()---擷取目前時間
介面:利用PHP編寫資料介面
讀取本機資料時,直接返回資料 json_encode()--講數組轉化為字串 json_decode(json, assoc)--將字串轉化為數組/對象 assoc為true時,將返回array。
檔案的讀取和寫入
fopen(filename, mode): 開啟檔案
fread(): 讀取內容
fwrite():寫入內容
fclose():關閉檔案
filesize():讀取檔案字元長度
//以讀模數式開啟檔案 $myfile = fopen(‘./data/weibo.json‘, ‘r‘); //讀取檔案內容 $content = fread($myfile, filesize(‘./data/weibo.json‘)); //關閉檔案,減少資源佔用 fclose($myfile);
擷取遠程json資料:
API資料
curl:client url
$url = ‘http://wthrcdn.etouch.cn/weather_mini?city=廣州‘;//初始化 cURL會話$ch = curl_init(); // 設定需要的選項curl_setopt($ch, CURLOPT_URL, $url); //執行會話$contents = curl_exec($ch); //關閉會話curl_close($ch); //輸出內容echo $contents;
爬蟲:file_get_contents() preg_match_all();
PHP的基本文法 就寫這麼多了(沒提到的跟JavaScript類似),細節以後會繼續補充
2017-3-23 15:30
PHP---初探PHP