PHP基礎教程七之計算機的實現

來源:互聯網
上載者:User

本節講解的內容

  • 計算機的實現

  • 超全域變數

  • 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)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.