本節講解的內容
計算機的實現
超全域變數
html中嵌套php代碼
前言
PHP語言是程式開發伺服器端的語言,是對資料的處理,PHP的開發不可避免的要與前台的頁面進行互動,從而進行資料的傳遞。那我們是怎麼從前台擷取資料並傳遞到背景呢?它們利用http協議進行資訊的傳輸。可以看另外一邊部落格http://www.php.cn/。
而今天的計算機的案例,設計到資料的前後台資料的傳輸。它的大致功能是在前台的頁面填寫資料,提交到後台,幕後處理完資料,再返回到前台。
計算機的實現
前台的一個html頁面CalculatingMachine.php
<?php $value = isset($_GET['value']) ? $_GET['value'] : '';?><!DOCTYPE html><html><head> <meta charset="utf-8"> <title>計算機的實現</title></head><style type="text/css"> .cm{ text-align:center; margin-top:100px; line-height:30px; }</style><body> <p class = 'cm'> <form action="NumCount.php" method="post"> 數字1:<input type="text" name="num1"><br> 數字2:<input type="text" name="num2"><br> <select name = 'oper'> <option value = 'plus'>+</option> <option value = 'subtract'>-</option> <option value = 'multiply'>*</option> <option value = 'pided'>/</option> </select><br> <input type="submit" value="計算"> </form> <p><?php echo $value;?></p> </p></body></html>
前台頁面是對使用者的輸入資料通過post方式傳遞到背景NumCount.php,在前台的檔案尾碼名是php結尾的,這是因為當幕後處理的資料傳到前台進行資料的顯示,最重要的一點,以php為尾碼名的檔案可以寫html代碼,但是以html為尾碼名的檔案不可以寫php代碼(可以在設定檔中設定);
背景處理頁面:NumCount.php
<?php //引入運算的函數 require_once './function.php'; //從html頁面得到資料 $num1 = isset($_POST['num1']) ? $_POST['num1'] : 0; $num2 = isset($_POST['num2']) ? $_POST['num2'] : 0; $oper = isset($_POST['oper']) ? $_POST['oper'] : ''; //判斷是否是數字 if(!is_numeric($num1) || !is_numeric($num2)){ echo "<script>alert('請輸入數字')</script>"; Header("Refresh:0;url = ./CalculatingMachine.php"); } //得到計算後的值 $value = 0; //通過switch判斷是那種運算 switch($oper){ case 'plus': $value = plus($num1,$num2); break; case 'subtract': $value = subtract($num1,$num2); break; case 'multiply': $value = multiply($num1,$num2); break; case 'pided': $value = pided($num1,$num2); break; default: echo ''; } //把計算後的值傳遞給前台。 Header("Refresh:0;url = ./CalculatingMachine.php?value={$value}");
背景接受頁面,因為是通過post方式進行資料的提交,所以可以通過超全域變數$_POST[]得到資料,並進行資料的驗證,當不是數位時候,彈出對話方塊進行提示,並通過header跳轉到前台。
在後台對資料的操作函數是封裝到了一個檔案中的,通過引入檔案進行使用,
運算的函數封裝到一個檔案中:function.php
<?php //加 function plus($num1,$num2){ return $num1 + $num2; } //減 function subtract($num1,$num2){ return $num1 - $num2; } //乘 function multiply($num1,$num2){ return $num1 * $num2; } //除 function pided($num1,$num2){ return $num1 / $num2; }
前台的頁面:
幕後處理資料後傳到前台:
超全域變數
在上面的背景代碼中可以看到接受資料是通過超全域變數$_POST[],進行接受資料的。那麼在PHP中什麼是超全域變數,他們又有什麼作用?
PHP 中的許多預定義變數都是“超全域的”,這意味著它們在一個指令碼的全部範圍中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們。
PHP中超全域的分類:
$GLOBALS 一個包含了全部變數的全域群組合 數組 。變數的名字就是數組的鍵。這就表示其在指令碼的所有範圍中都是可用的。不需要在函數或方法中用 global $variable; 來訪問它。
<?php$a = 12; //整型$str = '超全域變數';$arr = array(1,2,3,4); //數組var_dump($GLOBALS['a']);echo '<br>';var_dump($GLOBALS['str']);echo '<br>';var_dump($GLOBALS['arr']);
可以看到在上面中超全域變數$GLOBALS自動儲存了代碼中的變數。
$_SERVER 是一個包含了諸如頭資訊(header)、路徑(path)、以及指令碼位置(script locations)等等資訊的數組。這個數組中的項目由 Web 服務器建立。不能保證每個伺服器都提供全部項目;伺服器可能會忽略一些,或者提供一些沒有在這裡列舉出來的項目。
這個超全域變數和http協議也有些關係,在這個變數中,我們可以得到我們在進行資料轉送時的一些資訊。
<?php echo $_SERVER['SERVER_ADDR']; ......結果....... 127.0.0.1
上面只是server中的其中一個值而已,得到伺服器的ip地址,別的值可以查看協助文檔。
$_GET[] 通過 URL 參數傳遞給當前指令碼的變數的數組。 在網頁的傳輸資料是,常用的有兩種方式,一個GET和一個POST,而這個超全域變數就是儲存通過GET方式傳的值
$_POST[] 通過 HTTP POST 方法傳遞給當前指令碼的變數的數組,當通過POST方式傳遞資料的時候,這個超全域變數就會接受
$_REQUEST[],在上面兩個超全域變數根據不同的傳遞方式,儲存不同的值,而這個變數是兩種傳遞方式的數值都會儲存。
以下的超全域變數在以後中會慢慢介紹
$_FILES[] 檔案上傳變數,通過 HTTP POST 方式上傳到當前指令碼的項目的 數組 。 在後面的檔案上傳時,再詳細介紹。
$_COOKIE[] 通過 HTTP Cookies 方式傳遞給當前指令碼的變數的 數組
$_SESSION[] 當前指令碼可用 SESSION 變數的數組。更多關於如何使用的資訊,可以通過 Session 函數進行瞭解。
上面的就是PHP中的超全域變數,在開發中我們會隨時和他們打交道。
html中嵌入php代碼
在上面計算機的前台代碼中我們可以看到,當資料處理完傳遞到前台後,通過在p標籤中寫php代碼來顯示資料。從中我們可以看到php是怎麼嵌套在html代碼中
<?php code?>
在這裡的開發都是php代碼和html代碼進行嵌套,資料和頁面進行一起的開發,什麼模式都沒用到。
總結
電腦的案列幾乎包含了前面的所學,把所有的都化為己用。學習過得知識要學會運用。
以上就是PHP基礎教程七之計算機的實現的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!