>백엔드 개발 >PHP 튜토리얼 >PHP 기본 튜토리얼 7: 계산기 구현

PHP 기본 튜토리얼 7: 계산기 구현

黄舟
黄舟원래의
2017-03-01 09:42:471787검색

이 섹션에서 설명하는 내용

  • 계산기 구현

  • 수퍼 전역 변수

  • html에 포함된 PHP 코드

머리말

PHP 언어 서버사이드 개발과 데이터 처리를 위한 언어입니다. PHP를 개발하려면 데이터 전송을 위해 프런트엔드 페이지와의 상호작용이 필연적으로 필요합니다. 그렇다면 포그라운드에서 데이터를 가져와 백엔드로 전달하려면 어떻게 해야 할까요? 그들은 정보를 전송하기 위해 http 프로토콜을 사용합니다. 다른 쪽 http://www.php.cn/에서 블로그를 읽을 수 있습니다.

오늘의 계산기 케이스는 데이터 앞뒤로 데이터를 전송하도록 설계되어 있습니다. 일반적인 기능은 프론트 페이지에 데이터를 채워 백엔드에 제출하고 백엔드에서 데이터를 처리한 다음 프론트엔드로 돌아가는 것입니다.

계산기 구현

프런트엔드의 CalculatedMachine.php라는 HTML 페이지

<?php
    $value = isset($_GET[&#39;value&#39;]) ? $_GET[&#39;value&#39;] : &#39;&#39;;
?>
<!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 = &#39;cm&#39;>
    <form action="NumCount.php" method="post">
        数字1:<input type="text" name="num1"><br>
        数字2:<input type="text" name="num2"><br>
        <select name = &#39;oper&#39;>
            <option value = &#39;plus&#39;>+</option>
            <option value = &#39;subtract&#39;>-</option>
            <option value = &#39;multiply&#39;>*</option>
            <option value = &#39;pided&#39;>/</option>
        </select><br>

        <input type="submit" value="计算">
    </form>
    <p><?php echo $value;?></p>
    </p>
</body>
</html>

프런트엔드 페이지는 사용자의 입력 데이터를 포스트 메소드를 통해 전달하는 것입니다. NumCount.php는 백그라운드에서 프론트엔드의 파일 접미사가 php로 끝나는데, 이는 백그라운드에서 처리된 데이터가 프론트엔드에 전달되어 표시될 때 가장 중요한 점은 접미사가 php인 파일은 html을 작성할 수 있기 때문입니다. 그러나 접미사가 html인 파일은 PHP 코드로 작성할 수 없습니다(구성 파일에서 설정 가능).

백엔드 처리 페이지: NumCount.php

<?php

    //引入运算的函数
    require_once &#39;./function.php&#39;;

    //从html页面得到数据
    $num1 = isset($_POST[&#39;num1&#39;]) ? $_POST[&#39;num1&#39;] : 0;
    $num2 = isset($_POST[&#39;num2&#39;]) ? $_POST[&#39;num2&#39;] : 0;
    $oper = isset($_POST[&#39;oper&#39;]) ? $_POST[&#39;oper&#39;] : &#39;&#39;;

    //判断是否是数字
    if(!is_numeric($num1) || !is_numeric($num2)){
        echo "<script>alert(&#39;请输入数字&#39;)</script>";
        Header("Refresh:0;url = ./CalculatingMachine.php");
    }

    //得到计算后的值
    $value = 0;
    //通过switch判断是那种运算
    switch($oper){
        case &#39;plus&#39;:
            $value = plus($num1,$num2);
            break;
        case &#39;subtract&#39;:
            $value = subtract($num1,$num2);
            break;
        case &#39;multiply&#39;:
            $value = multiply($num1,$num2);
            break;
        case &#39;pided&#39;:
            $value = pided($num1,$num2);
            break;
        default:
            echo &#39;&#39;;
    }

    //把计算后的值传递给前台。
    Header("Refresh:0;url = ./CalculatingMachine.php?value={$value}");

백그라운드 허용 페이지, 데이터는 post 방식으로 제출되기 때문에 슈퍼 전역 변수 $_POST[]를 통해 데이터를 얻어서 검증할 수 있습니다. 숫자가 아닌 경우 대화 상자가 나타나 안내 데스크로 이동합니다. 헤더를 통해.

백그라운드의 데이터 작업 함수는 파일에 캡슐화되어 있으며, 파일을 가져와서 사용할 수 있습니다.

작업 함수는 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;
    }
파일에 캡슐화되어 있습니다.

프런트 엔드 페이지:
PHP 기본 튜토리얼 7: 계산기 구현

데이터가 백그라운드에서 처리된 후 프런트 엔드로 전송됩니다:
PHP 기본 튜토리얼 7: 계산기 구현

슈퍼 글로벌 변수

위의 백그라운드 코드에서는 슈퍼 글로벌 변수 $_POST[]를 통해 데이터를 받는 것을 볼 수 있습니다. 그렇다면 PHP의 슈퍼전역 변수는 무엇이며 그 기능은 무엇입니까?

PHP에서 미리 정의된 많은 변수는 "수퍼글로벌"입니다. 즉, 스크립트의 전체 범위에서 사용할 수 있습니다. 전역 $variable;을 실행하지 않고도 함수나 메서드 내에서 액세스할 수 있습니다.

PHP의 슈퍼글로벌 분류:

  • $GLOBALS 모든 변수를 포함하는 전역 조합 배열입니다. 변수의 이름은 배열의 키입니다. 이는 스크립트의 모든 범위에서 사용할 수 있음을 의미합니다. 이에 액세스하기 위해 함수나 메서드 내에서 전역 $variable을 사용할 필요가 없습니다.

    <?php
    $a = 12; //整型
    $str = &#39;超全局变量&#39;;
    $arr = array(1,2,3,4); //数组
    
    var_dump($GLOBALS[&#39;a&#39;]);
    echo &#39;<br>&#39;;
    var_dump($GLOBALS[&#39;str&#39;]);
    echo &#39;<br>&#39;;
    var_dump($GLOBALS[&#39;arr&#39;]);

    PHP 기본 튜토리얼 7: 계산기 구현

위 코드에서는 슈퍼 전역 변수인 $GLOBALS가 자동으로 변수를 저장하는 것을 볼 수 있습니다.

  • $_SERVER는 헤더, 경로, 스크립트 위치 등의 정보가 포함된 배열입니다. 이 배열의 항목은 웹 서버에 의해 생성됩니다. 모든 서버가 모든 항목을 제공한다는 보장은 없습니다. 서버는 일부 항목을 무시하거나 여기에 나열되지 않은 항목을 제공할 수 있습니다.
    이 슈퍼 전역 변수는 http 프로토콜과도 관련이 있습니다. 이 변수에서는 데이터를 전송할 때 몇 가지 정보를 얻을 수 있습니다.

    <?php
        echo $_SERVER[&#39;SERVER_ADDR&#39;];
        ......结果.......
        127.0.0.1

    위 내용은 서버에 있는 값 중 하나일 뿐입니다. 다른 값은 도움말 문서를 확인하시면 됩니다.

  • $_GET[] URL 매개변수를 통해 현재 스크립트에 전달되는 변수 배열입니다. 웹페이지에서 데이터를 전송하는데 흔히 사용되는 방식은 GET과 POST 두 가지가 있는데, 이 슈퍼 전역 변수는 GET 방식으로 전달된 값을 저장하기 위한 것입니다

  • $_POST[] Pass HTTP POST 메소드에 의해 현재 스크립트에 전달된 변수 배열입니다. POST를 통해 데이터를 전달할 때 이 슈퍼 전역 변수는 위의 두 슈퍼에서

  • $_REQUEST[]를 허용합니다. 전역 변수는 서로 다른 전송 방식에 따라 서로 다른 값을 저장하며, 이 변수는 두 전송 방식의 값을 모두 저장하게 됩니다.

다음 슈퍼 전역 변수는 향후 천천히 도입될 예정입니다.

  • $_FILES[] 파일 업로드 변수, HTTP POST An을 통해 업로드 현재 스크립트에 대한 항목 배열입니다. 나중에 파일이 업로드되면 자세히 소개하겠습니다.

  • $_COOKIE[] HTTP 쿠키를 통해 현재 스크립트에 전달된 변수 배열

  • $_SESSION[] 사용 가능한 SESSION 변수 배열 현재 스크립트 배열에 있습니다. 자세한 사용방법은 Session 기능을 통해 학습하실 수 있습니다.

위 내용은 PHP의 슈퍼 전역 변수로 개발 중에 언제든지 처리하게 됩니다.

html中嵌入php代码

在上面计算器的前台代码中我们可以看到,当数据处理完传递到前台后,通过在p标签中写php代码来显示数据。从中我们可以看到php是怎么嵌套在html代码中

    <?php code?>

在这里的开发都是php代码和html代码进行嵌套,数据和页面进行一起的开发,什么模式都没用到。

总结

计算机的案列几乎包含了前面的所学,把所有的都化为己用。学习过得知识要学会运用。

 以上就是PHP基础教程七之计算器的实现的内容,更多相关内容请关注PHP中文网(www.php.cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.