摘要:此類型在很多方面做了優化,因此可以把它當成真正的數組,或列表向量,散列表是映射的一種實現,字典,集合,棧,隊列以及更多可能性。由于數組元素的值也可以是另一個數組,樹形結構和多維數組也是允許的。
這是一篇以 iOS 開發人員的視角寫給廣大iOS 程序猿的 PHP 入門指南.在這篇文章里我努力去發掘 objectiv-c 與 php 之間的共性,來幫助有一定 iOS 開發經驗的攻城獅來快速上手一門后臺開發語言.后臺開發語言,就是以"數據接口"的形式出現在我們的開發文檔的那個東西!掌握PHP,無論對自己目前的iOS開發工作還是以后個人職場生涯的長久發展,都會大有裨益!最重要的是,PHP本身不是一個玩具語言,而是目前相當一部分公司仍然在用的后臺開發語言,甚至包括你目前的公司;這篇文章,也不是一個簡單的基礎手冊,而是以一種更適合 iOS 開發人員理解的方式來系統講解 PHP 中最核心最重要最常用的概念和功能.閱讀并有效實踐本文,將有助于你擁有獨立編寫后臺數據接口的能力.
必要的準備與說明首先,你需要下載最新版 XAMPP軟件,以在本地搭建一個 php 服務器.下載地址: https://www.apachefriends.org/download.html.
下載完成后,雙擊安裝.安裝成功后,選擇 Mange Servers-->Start All啟動本地服務器.啟動成功后,在瀏覽器中輸入 http://localhost,就可以看到一個默認的PHP頁面.
你的php服務器文件默認放在: 應用程序-->XAMPP-->htdocs 目錄下.
然后你還需要下載一款PHP編輯器,此時我使用Github的Atom編輯器.個人感覺界面很舒適,代碼高亮看著也很舒服,你可以到這里下載: https://atom.io.下載完成后,點擊安裝即可.
最后要說明的是:PHP版本很多,下面的講解支持目前最常用的 php 5.3.0 及其以上版本.
Hello World!下面編寫最簡單的 Hello World 程序,請在以下步驟執行.
1.在 應用程序-->XAMPP-->htdocs 目錄下新建目錄 find_php.沒有特別的意思,純碎是為了演示方便,同時不干擾默認存在的php文件.
2.打開Atom編輯器,使用 cmd+N 新建文件,并輸入以下代碼,并 cmd+S 保存到 find_php目錄,文件命名為 index.php.如果PHP無法如中一樣高亮顯示,可能就需要點擊文件右下角,以手動指定當前問文件的語法高亮方式.
iOS應用通常是以 AppDelegate 文件作為編碼的起始(準確說的是 main.m,在此不細究).在PHP中,你可以使用一個 index.php 文件作為你的 php 程序的唯一入口.你的所有的php頁面間的訪問與跳轉,都將是由此處開始.下面的代碼可以先先復制到你的 index.php種,它實現了一個基本的頁面訪問與控制的框架:
"; echo "數據模型:
"; foreach ($model as $key => $value) { echo $key.":".$value."
"; } ?>
然后在瀏覽器地址欄,輸入: http://localhost/find_php/index.php?viewController=HomeViewController&model[id]=42&model[name]=iOS122&model[age]=25
頁面輸入:
控制器:HomeViewController 數據模型: id:42 name:iOS122 age:25
viewController=后面跟的是你你的表示你的視圖控制器, model是一個字典,用于存儲數據模型,支持輸入多個鍵值對.id,name,age等都是自定義的鍵,用于表示你想要傳給新頁面的數據,如果沒有可以不寫.
注意: 此處暫僅考慮簡單的GET請求,至于其他變體可在熟悉PHP語法后,自行書寫.學習新語言的初期,努力尋找新東西與已經掌握的東西的共通之處,總是可以事半功倍!
MVC 設計模式我們仍然從常用的MVC模式來開始更進一步的討論.M,即Model數據模型,對應于我們在地址欄輸入的model;V,即視圖View,更直接地說是顯示數據,為了簡化討論,我們此處僅對移動端開發常用的JSON格式數據的顯示作一實現;C,即Controller控制器,也就是我們常說的視圖控制器,下面會具體討論如何在PHP中定義視圖控制器.
注意: 移動端數據接口只是PHP的應用場景之一.其實你日常接觸的絕對部分網站都是由 PHP 驅動的,要想寫出布局優美的網站,你需要學習HTML和JS相關的知識.如果有興趣,建議去這個網站: http://www.w3school.com.cn
改進后的 index.phpmodel = $model; $controller->show(); } ?>
這個方法可以實現根據用戶輸入自動跳轉至對應的界面.你直接把代碼復制到index.php中即可,因為它暫時不再需要做變更了.一些說明的技術點是:
實現了 魔術方法 __autoload,以實現自動加載相關的類文件.這有些類似于我們在 .pch中全局引入某個頭文件,然后整個工程處處可用一樣.
php 是一種弱類型語言,你定義變量時不必聲明類型,但是變量要以 美元符號 $開頭.
php 使用 new 函數來創建一個對象,語法是 new 類名(),這不禁讓我想起 oc 中的 new函數,它的語法是: [類名 new];
php 中的函數,看起來更像是C語言函數,也許說更像 oc 中的block,可能更好理解些.
php 訪問屬性,使用的是 ->,而不是 .;另一種 php 訪問屬性的方式是使用 obj["屬性名"],如$controller["model"].
此時你訪問 http://localhost/find_php/index.php?viewController=HomeViewController&model[id]=42&model[name]=iOS122&model[age]=25,應該會報錯:
syntax error, unexpected ">" in /Applications/XAMPP/xamppfiles/htdocs/find_php/HomeViewController.php on line 38
因為你還沒有定義視圖控制器
在find_php文件夾新建 HomeViewController.php 文件,并把下面的代碼復制進去:
` 而不是 `.` */ $this->model = $model; } /* 析構函數,作用和 oc 中的dealloc很像. */ public function __destruct() { $this->model = NULL; } /* 獲取內容,用于輸出顯示. */ protected function getContent() { /* 默認把用戶輸入以JSON格式返回 */ $content = json_encode($this->model); return $content; } /* 定義實例方法:show; 定義方法使用的是關鍵字 function,且無法指定返回值,這點不如 oc 方便; */ public function show() { /* 使用$this關鍵字來調用另一個實例方法. */ $content = $this->getContent(); echo $content; } }
此時你訪問 http://localhost/find_php/index.php?viewController=HomeViewController&model[id]=42&model[name]=iOS122&model[age]=25,輸出應該是:
{"id":"42","name":"iOS122","age":"25"}
說明,頁面的確跳轉到了 HomeViewController控制器,并有效輸出;而且輸出的是我們移動端開發最常接觸的 json 格式的數據.
以上的代碼,充分展示了php作為一門面向對象(OOP)語言最常用的幾個功能,如定義屬性,定義實例方法,在示例方法內訪問屬性與實例方法等.PHP作為一門弱類型的OOP語言,也有一些非常強大的特性,推薦閱讀:
重載
魔術方法
后期靜態綁定
Model: 關于數據模型的幾點說明.網上關于MVC中M的討論,此處我選取的是最基本的一種: M專指用于存儲某種數據的類的實例.它可以用于數據的格式化存儲和傳遞,但不應包含發起網絡請求和讀寫數據庫等操作;
在本文討論的Model中,我們進一步簡化了Model,允許且只允許用于通過URL來定義某個控制器的Model;
PHP 是一本弱類型的語言,所以不必專門為某種控制器指定某種類型的Model.
"PHP 中的數組實際上是一個有序映射。映射是一種把 values 關聯到 keys 的類型。此類型在很多方面做了優化,因此可以把它當成真正的數組,或列表(向量),散列表(是映射的一種實現),字典,集合,棧,隊列以及更多可能性。由于數組元素的值也可以是另一個數組,樹形結構和多維數組也是允許的。"
View: 一個顯示HTML的實例.返回 JSON 格式的數據,已經達到了做移動端開發的需要,但此處仍然使用HTML語法來顯示數據,以便于更好地理解.用下面的代碼替換 HomeViewController.php 文件的 getContent 方法:
/* 獲取內容,用于輸出顯示. */ protected function getContent() { $content = "
此時你訪問 http://localhost/find_php/index.php?viewController=HomeViewController&model[id]=42&model[name]=iOS122&model[age]=25,輸出應該是:
id:42
name:iOS122
age:25
瀏覽器中會被自動解析為一個列表.對應的HTML代碼如下:
此處使用了簡單的HTML標簽.
小結本文通過模擬實現 iOS 的MVC的設計模式,來概要性地講解了PHP中的對應的各個概念.熟悉以上操作,可以使你具備自定義服務器接口的基本能力.參與討論,參見:http://www.ios122.com/tag/php/ 更全面地信息,參見PHP官方中文文檔: http://ua2.php.net/manual/zh/langref.php.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21142.html
摘要:基礎知識使用腳手架創建項目并啟動安裝腳手架使用腳手架創建項目為項目名。否則可能導致項目發布上線后,報錯無法執行。安裝測試使用注意默認情況下安裝的需要引入才會生效樣式,但很多時候,我們只是使用了部分組件,引入整個樣式文件,有些得不償失。 showImg(http://upload-images.jianshu.io/upload_images/2774022-8d65190f1b972c...
摘要:工作日,每天起床機械地去上班,周末,每天優哉游哉,好像一個木偶,被生活蹂躪的木偶,意識以外的力量在操縱著的木偶。支持子節點數據異步加載。當然,官方將提供更改鍵值的。本許可協議授權之外的使用權限可以從處獲得。 Created by huqi at 2019-5-18 10:32:30 Updated by huqi at 2019-5-18 12:32:23 showImg(http...
摘要:而令人關注的是,將云計算技術整合到業務的開發工作流程中可以顯著提高生產力。模擬開發人員也可以檢查其程序在不同平臺上的運行方式,如果這是特定開發工作中的一個問題。通過采用云計算可提高生產力,開發人員將獲得很多益處。如今,現代軟件的開發在硬件和軟件資源方面的要求是非常苛刻的,而很多程序人員只是為了編寫代碼而投購買高端機器的情況并不少見。實際上,這樣的處理和投入是值得的,但更重要的是,這些人可能會...
閱讀 2953·2023-04-26 01:32
閱讀 1548·2021-09-13 10:37
閱讀 2286·2019-08-30 15:56
閱讀 1677·2019-08-30 14:00
閱讀 3052·2019-08-30 12:44
閱讀 1967·2019-08-26 12:20
閱讀 1066·2019-08-23 16:29
閱讀 3233·2019-08-23 14:44