搜尋
首頁後端開發php教程iOS程式猿如何快速掌握 PHP,化身"全端攻城獅"?

這是一篇以iOS 開發人員的視角寫給廣大iOS 程式猿的PHP 入門指南.在這篇文章裡我努力去發掘objectiv-c 與php 之間的共性,來幫助有一定iOS 開發經驗的攻城獅來快速上手一門後台開發語言.後台開發語言,就是以"數據接口"的形式出現在我們的開發文檔的那個東西!掌握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.
  1. echo 'Hello World';
  2. ?>
複製代碼

如果PHP無法如中一樣高亮顯示,可能就需要點擊檔案右下角,以手動指定目前問文件的語法高亮方式.
iOS程式猿如何快速掌握 PHP,化身

3.在瀏覽器網址列輸入: http://localhost/find_php/index.php,即可看到用PHP寫的Hello World.

iOS程式猿如何快速掌握 PHP,化身

AppDelegate 入口文件

iOS應用程式通常是以AppDelegate 檔案作為編碼的起始(準確地說的是main.m,在此不細究).在PHP中,你可以使用一個index.php 檔案作為你的php 程式的唯一入口.你的所有的php頁間的訪問與跳轉,都將是由此處開始.下面的程式碼可以先複製到你的index.php種,它實現了一個基本的頁面訪問與控制的框架:

  1. $controller = '';
  2. $model = array();
  3. if (isset($_GEGET[ 'viewController'])) {
  4. $controller = $_GET['viewController'];
  5. }
  6. if (isset($_GET['model'])) {
  7. $model = $_GET['model'];
  8. }
  9. echo '控制器:'.$controller.'
    ';
  10. echo '資料模型:
    ';
  11. foreach ($model as $key => $value) {
  12. echo $key.':'.$value.'
    ';
  13. }
  14. ?>
複製程式碼

然後在瀏覽器網址列,輸入: http://localhost/find_php/index.php?viewController=HomeViewController&model[id]= 42&model[name]=iOS122&model[age]=25
頁輸入:

  1. 控制器:HomeViewController
  2. 資料模型:
  3. 控制器:HomeViewController
  4. 資料模型:
id:42
id: >name:iOS122age: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.php
  1. /* 實作類別檔案的自動載入*/
  2. function __autoload($className) {
  3. if (file_exists($className . '.php')) {
  4. require_once $className . '.php';
  5. return true;
  6. }
  7. return false;
  8. }
  9. }
  10. return false;
  11. }
  12. }
  13. >
  14. // --------------------------------
  15. /* 取得使用者想要造訪的頁面的相關資訊. */
  16. $controllerName = '';
  17. $model = array();
  18. if (isset($_GET['viewController'])) {
  19. $controllerName = $_GET['viewController'];
  20. }
  21. if (isset($_GET['model'])) {
  22. $model = $_GET['model'];
  23. }
  24. /* 跳到指定頁面. */
  25. if ('' !== $controllerName) {
  26. /* 我們約定每個控制器都至少有一個$ model屬性與show方法*/
  27. $controller = new $controllerName();
$controller->model = $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
複製程式碼

因為你還沒有定義視圖控制器!

Controller:定義視圖控制器

在find_php資料夾新建HomeViewController.php 檔案,並把下面的程式碼複製進去:

  1. /* 建議一個檔案中只有一個與檔案同名的類別.
  2. 如果需要繼承自其他類別,可以使用關鍵字extends,如*/
  3. class HomeViewController
  4. {
  5. /*
  6. 定義屬性,允許定義時,給屬性一個預設值,這一點比OC靈活.
  7. public 關鍵字用於指定外部可存取;
  8. 類似的還有private(僅允許內部存取),protected(僅允許自身及其子類別存取);
  9. 屬性前必須有關鍵字public/private/protected 中的一個.
  10. */
  11. public $model = array(); // 定義允許外部存取的屬性.
  12. /* 建構子,相當於init初始化方法;
  13. 當呼叫New 函式新物件時,此方法會被自動呼叫;
  14. array 指明參數型別, $model是實參, $model = array(),用於指定預設參數;
  15. 指定了預設參數的參數,在呼叫時,可以不傳;
  16. public 關鍵字作用等同於屬性的關鍵字,預設可以不傳,不傳則為public;
  17. */
  18. public function __construct(array $model = array())
  19. {
  20. /* 在實例方法內部存取物件的屬性,使用$ this 關鍵字,且屬性名前沒有美元符號$;
  21. 類似於oc 中的self,但是使用的是`->` 而不是`.` */
  22. $this->model = $model;
  23. }
  24. /*
  25. 析構函數,作用和oc 中的dealloc很像.
  26. */
  27. public function __destruct()
  28. {
  29. $this-this >model = NULL;
  30. }
  31. /* 取得內容,用於輸出顯示. */
  32. protected function getContent()
  33. {
  34. /* 預設把使用者輸入以JSON格式回傳*/
  35. $content = json_encode($this->model);
  36. return $content;
  37. }
  38. /*
  39. 定義實例方法:show;
  40. 定義方法使用的是關鍵字function,且無法指定回傳值,這點不如oc 方便;
  41. */
  42. public function show()
  43. {
  44. /* 使用$this關鍵字來呼叫另一個實例方法. */
  45. $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 方法:
  1. /* 取得內容,用於輸出顯示. */
  2. protected function getContent()
  3. {
  4. $content = '
      ';
    • foreach ($this->model as $key => $value) {
    • $content .= "
    • $key:$value
    • " ;
    • }
    • $content .= '
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
11個最佳PHP URL縮短腳本(免費和高級)11個最佳PHP URL縮短腳本(免費和高級)Mar 03, 2025 am 10:49 AM

長URL(通常用關鍵字和跟踪參數都混亂)可以阻止訪問者。 URL縮短腳本提供了解決方案,創建了簡潔的鏈接,非常適合社交媒體和其他平台。 這些腳本對於單個網站很有價值

Instagram API簡介Instagram API簡介Mar 02, 2025 am 09:32 AM

在Facebook在2012年通過Facebook備受矚目的收購之後,Instagram採用了兩套API供第三方使用。這些是Instagram Graph API和Instagram Basic Display API。作為開發人員建立一個需要信息的應用程序

在Laravel中使用Flash會話數據在Laravel中使用Flash會話數據Mar 12, 2025 pm 05:08 PM

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

構建具有Laravel後端的React應用程序:第2部分,React構建具有Laravel後端的React應用程序:第2部分,ReactMar 04, 2025 am 09:33 AM

這是有關用Laravel後端構建React應用程序的系列的第二個也是最後一部分。在該系列的第一部分中,我們使用Laravel為基本的產品上市應用程序創建了一個RESTFUL API。在本教程中,我們將成為開發人員

簡化的HTTP響應在Laravel測試中模擬了簡化的HTTP響應在Laravel測試中模擬了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

php中的捲曲:如何在REST API中使用PHP捲曲擴展php中的捲曲:如何在REST API中使用PHP捲曲擴展Mar 14, 2025 am 11:42 AM

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

在Codecanyon上的12個最佳PHP聊天腳本在Codecanyon上的12個最佳PHP聊天腳本Mar 13, 2025 pm 12:08 PM

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

宣布 2025 年 PHP 形勢調查宣布 2025 年 PHP 形勢調查Mar 03, 2025 pm 04:20 PM

2025年的PHP景觀調查調查了當前的PHP發展趨勢。 它探討了框架用法,部署方法和挑戰,旨在為開發人員和企業提供見解。 該調查預計現代PHP Versio的增長

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具