1 / 33

PHP 函數、陣列與 jQuery Mobile

PHP 函數、陣列與 jQuery Mobile. 教材. 陳會安 著( 2013 ), PHP+MySQL 與 jQuery Mobile 跨行動裝置網站開發, 碁峰資訊股份有限公司, ISBN 9789862768563 (書號 ACL037900 ) 楊仁和 譯( 2012 ), 深入淺出行動網站開發, 碁峰資訊股份有限公司, ISBN 9789862765005 (書號 A310 )

afram
Download Presentation

PHP 函數、陣列與 jQuery Mobile

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP函數、陣列與jQuery Mobile

  2. 教材 陳會安 著(2013), PHP+MySQL 與 jQuery Mobile 跨行動裝置網站開發, 碁峰資訊股份有限公司, ISBN 9789862768563 (書號 ACL037900) 楊仁和 譯(2012), 深入淺出行動網站開發, 碁峰資訊股份有限公司, ISBN 9789862765005 (書號 A310) 榮欽科技、陳婉凌(2012), 網頁設計必學的程式實作技術-HTML5+CSS3+JavaScript, 博碩文化, ISBN: 978-986-201-664-0 (書號 PG31237 )

  3. 大綱 PHP函數 變數範圍與參數傳遞 PHP的一維索引陣列 二維與結合陣列 字串與字串函數 整合jQuery Mobile與版面配置

  4. 建立PHP函數 • 關鍵字 function • 不宣告傳回值 • 沒有參數也必須加 ()

  5. 預設參數值

  6. 函數變數 Variable Function

  7. PHP的變數範圍 Variable Scope • 區域變數(Local Variables) • 在函數內指定的變數,只能在函數內使用 • 函數參數也是區域變數。 • 全域變數(Global Variables) • 在函數外宣告,整個PHP程式檔都可以存取此變數 • 在函數中使用全域變數要宣告 global • 靜態變數(Static Variables) • 一種區域變數,在變數前加 static 關鍵字 • 變數值不會消失

  8. 傳值或傳址呼叫函數 • 兩種參數傳遞方式

  9. 傳值呼叫 Call by Value參考呼叫 Call by Reference PHP 沒有指標但是有 Reference

  10. PHP陣列的基礎 • Array • 基本資料結構 • 索引陣列 Indexed Array • 以數字作為索引,從 0 開始編號 • 結合陣列 Associative Array • 以鍵值字串作為索引 • Key-Value Pair

  11. 索引陣列(Indexed Arrays)

  12. 結合陣列(Associative Arrays) $today = getdate($stamps); $month = $today["month"]; $day = $today["mday"]; $year = $today["year"];

  13. 一維索引陣列 • PHP陣列不需要事先宣告 • 直接指定陣列元素,索引值自動從0開始增加,每次加1 • $names[] = "江小魚"; • $names[] = "陳允傑"; • $names[] = "楊過"; • 相當於使用下列索引值指定陣列元素 • $names[0] = "江小魚"; • $names[1] = "陳允傑"; • $names[2] = "楊過";

  14. 一維索引陣列 • 使用array()語言建構子(Language Construct)建立陣列 • 不是函數,而是PHP語言的關鍵字 • $grades = array(78, 55, 89, 93);

  15. 存取陣列元素 $grades[2] = 65; $total += $grades[$i]; for ( $i = 0; $i < count($grades); $i++ ) { echo "$i=>$grades[$i] "; } foreach ($grades as $element) { echo "$element "; }

  16. 函數的不定長度參數列Variable-Length Arguments • 函數參數不指明資料型態和變數名稱 • 在函數中取得傳入的參數資訊

  17. 二維陣列 $row0 = array(64, 65); $row1 = array(77, 81); $row2 = array(89, 93); $grades = array($row0, $row1, $row2);

  18. 結合陣列 $arr["color"] = "紅色"; $arr["name"] = "毛利"; $arr["shape"] = "圓形"; $arr[] = 50; $arr = array( "color"=>"黑色", "name"=> "科男", "shape"=>"三角形", 100 ); if (!isset($arr["type"])) $arr["type"] = "PHP"; array_key_exists(key, array)函數可以檢查第2個參數的結合陣列是否有第1個參數的鍵值,如果有,傳回true。

  19. 刪除結合陣列元素 • 刪除結合陣列元素是使用unset() • unset($arr["type"]);

  20. 走訪結合陣列元素 • 使用foreach foreach($arr as $key=>$value) { echo "$key=>$value "; }

  21. require()和include() • require()可以在PHP程式直接引用其他檔案的PHP程式碼,也就是將require()程式碼位置取代成引入檔內容。例如:在PHP程式引用Header.php引入檔,引入檔副檔名可以是.php、.inc或.txt,如下所示: • <?php • require "shared/Header.php"; • require ("shared/Header.php"); • $file = "shared/Header.php"; • require $file; • ?>

  22. require()和include() • 如果PHP程式只準備引用引入檔一次,而且只能一次,我們可以使用require_once()來引用檔案,如下所示: • require_once("shared/Header.php"); • 請注意!require()引用的引入檔不論位在PHP程式檔的哪一個位置,就算位在條件程式區塊中,也一定會插入PHP檔案。

  23. require()和include() • PHP的include()和require()功能和使用方式都很相似,只是require()的引入檔一定要存在,否則會產生執行錯誤,include()的引入檔案如果不存在,只會顯示警告訊息,PHP程式一樣可以繼續執行。

  24. require()和include() • 實作上,include()和require()除了建立版面配置外,也可以將PHP函數抽出成函數庫檔案,其副檔名通常為.inc,如此PHP程式需要使用函數時,只需在PHP程式引用函數庫檔案即可,這些.inc檔案如同使用者自訂的PHP函數庫,如下所示: • <?php include(shared/MyFunc.inc); ?> • 如果PHP程式只準備引用引入檔一次,而且只能一次,我們可以使用include_once()來引用檔案,如下所示: • include_once("shared/MyFunc.inc"); • 上述程式碼當引入檔已經引用過時,將不會再次引用引入檔。

  25. 在PHP程式檔使用jQuery Mobile • 對於jQuery Mobile程式結構來說,在<body>開始標籤之前都是可重複使用區塊,只有<title>標籤的標題文字可能不同,和可能需要含括自訂CSS樣式和JavaScript檔案。在PHP程式可以使用include()引用位在<body>開始標籤之前的HTML標籤,如下所示: • <?php // jQuery Mobile標頭 • $pageTitle="Ch7_6_2.php"; // 標題文字 • // $CSSFile="MyCSS.css"; • // $JSFile="MyJS.js"; • include("shared/jQM_Header.php"); • ?>

  26. 在PHP程式檔使用jQuery Mobile • 當指定變數值後,使用include()引用jQM_Header.php檔案的jQuery Mobile標頭區塊,其內容擁有<html>、<body>開始標籤,和<head>區塊的<meta>標籤,含括jQuery Mobile框架的CSS樣式和JavaScript程式碼檔案的<link>和<script>標籤。 • 接著2個if條件判斷是否有自訂外部CSS和JavaScript檔案(即指定$CSSFile和$JSFile變數值),如下所示: • <?php if (isset($CSSFile)) { ?> • <link rel="stylesheet" href="<?php echo $CSSFile; ?>"> • <?php } • if (isset($JSFile)) { ?> • <script src="<?php echo $JSFile; ?>"></script> • <?php } ?>

  27. 在PHP程式檔使用jQuery Mobile • 本節版面配置包含完整jQuery Mobile頁面標籤,如果jQuery Mobile頁面擁有固定標題和註腳工具列,我們一樣可以使用相同方式將這些標籤建立成PHP引入檔。

  28. 練習題:十八豆仔遊戲 • 四顆骰子,計分方式: • 豹子:四顆骰子點數相同 • 二同二同:比較大的點數X2 • 二同二異:異點相加 • 三同或四不同:重擲 • 最大:豹子六點 • 最小:三點(BG)

  29. 練習題:十八豆仔遊戲 • 如何模擬擲骰子? • $n = rand(1, 6); • 如何計算點數? • 以陣列儲存四顆骰子的點數 • $dice[$i] = $n; • 以陣列計算骰子出現的次數 • if (!isset($count[$n])) $count[$n] = 1; else $count[$n] += 1;

  30. 練習題:十八豆仔遊戲 • 以 count() 計算陣列長度 • $count 陣列長度為? • 1:豹子 • 2:三同 或 兩同兩同 • 3:兩同兩異 • 4:無點數

More Related