Day 37 (PHP)

1.取得型别echo gettype

<?php
    // $[a-zA-Z][a-zA-Z0-9_]*
    // 弱型别程序语言PHP, JavaScript => 强型别 Java

    $var1 = 123;     
    echo gettype($var1) . '<br />';  //integer
    $var1 = 12.3;
    echo gettype($var1) . '<br />';  //double
    $var1 = 'Brad';
    echo gettype($var1) . '<br />';  //string
    $var1 = false;
    echo gettype($var1) . '<br />';  //boolean
    $var1 = new DateTime();
    echo gettype($var1) . '<br />';  //object
?>

强型别:宣告後不能改变 ex:Int
宣告变数不要用$$、$_ : 有特殊用处,并且大小写严格区分
. :连接字串


2.计算

<?php
    $var1 = 'Brad';
    $var2 = 'Chao';
    $var3 = "$var1$var2" . '<br />';
    $var4 = 59;
    echo $var3;        //BradChao
    echo "{$var4}kg";  //59kg
?>

"{$变数}字串" >>> ""、''有差异


3.认识後端 method="get"

<script>
    function add() {}
</script>
<form action="brad08_收取资料.php" method="get">
    <!-- get是预设,改成method="post"会送不出去 -->
    <!-- action="brad08_收取资料.php"没给出去会留在原地(载入,有带参数)-->
    <input type="number" id="x" name="x" />
    <span>+</span>
    <input type="number" id="y" name="y" l>
    <input type="button" onclick="add()" value="=(JS)" />
    <input type="submit" value="=(PHP)" />
</form>

PHP会送出而刷新页面(或送去别的PHP处理),但(X+X=?)用JS写就好了
method="get":抓住,预设,如没给出去会留在原地自己处理(有带参数)
action="brad08.php":送去这PHP处理


4.取得资料 $_GET

// brad08.php内

<?php
    $x = $_GET['x'];  
    $y = $_GET['y'];
    $result = $x + $y;
    echo "{$x} + {$y} = {$result}";
?>

5.变数有大小写严格区分

指令、函数没有严格区分

(1)变数

<?php
    $a = 123;
    $A = 456;
    echo $A;
?>
<?php
    $_GET = 124;
    echo $_GET;
?>

(2)指令

<?php
    $a = 123;
    $A = 456;
    eCho $A;
?>

(3)函数

<?php
    $a = 123;
    $A = 456;
    eCho GetType($a);
?>

6.自己处理时

<?php
    $x = $_GET['x'];
    $y = $_GET['y'];
    $result = $x + $y;  //JS要转型数值才能+ 否则会"字串"+"字串"
// echo "{$x} + {$y} = {$result}";   //不显示在网页上
?>

<script>
    function add() {}
</script>
    <form method="get">
    <input type="number" id="x" name="x" value="<?php echo $x ?>" />
    <span>+</span>
    <input type="number" id="y" name="y" value="<?php echo $y ?>">
    <input type="button" onclick="add()" value="=(JS)" />
    <input type="submit" value="=(PHP)" />

    <!-- 答案放这里 -->
    <span><?php echo $result ?></span>
</form>

自己get,放答案~


7.PHP标签内可以放HTML标签,因为会分别送去各自的地方处理

PHP>>送去阿帕契(程序,嵌入(似link:CSS)),检视原始码不会有PHP
HTML>>送去浏览器(文件)


8.找组态档去设定PHP,让错误讯息显示(开发用)-----开发记得打开~

记得对外营业的时候关掉,才不会被人家发现哪里错误XD

(1)档案brad02.php

(2)找
Loaded Configuration File
C:\MAMP\conf\php7.4.1\php.ini

(3)编辑php.ini >> display_errors = On

(4)重新开服务器


9.抓值isset,不使用也可以跑,但实际上是错误

<?php
    $aaa = 123;
    if (isset($aaa)) {
        echo $aaa;
    } else {
        echo 'xxxxx';
    }
?>

不使用isset也可以跑,但实际上是错误(职场上有人会这样写)

<?php
    $aaa = 123;
    if ($aaa) {
        echo $aaa;
    } else {
        echo 'xxxxx';
    }
?>

10.isset带一个name:属性,其他会跟着带

<?php
    $result =  $op = ''; //预设值
    if (isset($_GET['x']) && isset($_GET['y'])) {
        //isset带一个name:属性,其他会跟着带,
        //这是http的通讯协定,所以可以只写isset($_GET['x'])

        $op = $_GET['op'];
        $x = $_GET['x'];
        $y = $_GET['y'];  // JS要转型数值才能+ 否则会"字串"+"字串"
        $result = $x + $y;
    }
?>

11.强制转型整数(int)

     if ($op == 1) {
        $result = $x + $y;
    } else if ($op == 2) {
        $result = $x - $y;
    } else if ($op == 3) {
        $result = $x * $y;
    } else if ($op == 4) {
        $result = (int)($x / $y) . ' ...... ' . ($x % $y); //强制转型整数
    } else {
        $result = "";
    }

12.乱数 rand乱数(最小,最大)

    $score = rand(0,100);
    echo $score . '<hr />';
    if ($score >= 90){
        echo 'A';
    }else if ($score >= 80){
        echo 'B';
    }else if ($score >= 70){
        echo 'C';
    }else if ($score >= 60){
        echo 'D';
    }else {
        echo 'E';
    }

13.PHP官网 查询rand如何使用~?

https://www.php.net/manual/en/function.rand


14.case可以使用变数、计算

    $var1 = 10;
    $var2 = 20;

    switch ($var1) {
    case 1:
        echo 'A';
        break;
    case 2:
        echo 'A1';
        break;
    case $var2 - 10: //要=var1
        echo 'B';
        break;
    default:
        echo 'C';
}

15.for不只可以跑Loop,范例如下:test1()、drawLine()

$i = 0;

for (test1(); $i < 10; drawLine()) {

    // test1()拿来做一件事情
    // $i = 0;在外面已经附值

    echo "{$i}<br />";
    $i++;

    // drawLine()拿来做一件事情
    //$i++;拿出来~

}

function test1()
    {
    echo 'Brad<br />';
    }
function drawLine()
    {
    echo '<hr />';
    }

16.99乘法表推论(PHP02影片5:00)

1.概念

  2x1=2
  2x1=2
  2x1=2
  2x1=2
  2x1=2

2.for(;;)

3.回圈跑的次数对,但是内容不对 2x1(~9)=2

    for($i=1从1出发 ;$i<=9乘以9次 ;$i++){
        echo "2 x 1 = 2<br>";
    }

4.修改内容(2这个乘法表正确)

    for ($i = 1; $i <= 9; $i++) {
        $r = 2 * $i;                   //$r装答案
        echo " 2 x {$i} = {$r} <br> ";
    }

5.让这个2这个乘法表被框包起来

    echo '<td>';
    for ($i = 1; $i <= 9; $i++) {
        $r = 2 * $i;          //$r装答案
        echo " 2 x {$i} = {$r} <br> \n";
    }
    echo '<td>';

6.处理其他层(2~5)(for包起来)

            for ($j = 2; $j <= 5; $j++) {
                echo '<td>';
                for ($i = 1; $i <= 9; $i++) {
                    $r = 2 * $i;          //$r装答案
                    echo " 2 x {$i} = {$r} <br>\n";
                }
                echo '<td>';
            }

7.把2抓掉,放上变数{$j},完成2~5乘法表正确

            for ($j = 2; $j <= 5; $j++) {
                echo '<td>';
                for ($i = 1; $i <= 9; $i++) {
                    $r = 2 * $i;          //$r装答案
                    echo " {$j} x {$i} = {$r} <br>\n";
                }
                echo '<td>';
            }

8.做6~9,先放入tr,不要跑版

            echo '<tr>';
            for ($j = 2; $j <= 5; $j++) {
                echo '<td>';
                for ($i = 1; $i <= 9; $i++) {
                    $r = 2 * $i;          //$r装答案
                    echo " {$j} x {$i} = {$r} <br>\n";
                }
                echo '<td>';
            }
            echo '<tr>';

9.增加for,思考方式:tr要几列?(横向两列)先做版面

            for ($k = 0; $k < 2; $k++) {
                echo '<tr>';
                for ($j = 2; $j <= 5; $j++) {
                    echo '<td>';
                    for ($i = 1; $i <= 9; $i++) {
                        $r = 2 * $i;          //$r装答案
                        echo " {$j} x {$i} = {$r} <br>\n";
                    }
                    echo '<td>';
                }
                echo '<tr>';
            }

10.把6~9的内容更改(前面+4: 2+4=6、3+4=7、4+4=8....)

调整$j ==> $newj = $j + $k * 4;
有先*/後+-

第一圈要保留,从第二圈{$k}开始改
04 = 0 :2+0=2、3+0=3、4+0=4、5+0=5(上排,第一圈)
1
4 = 4 :2+4=6、3+4=7、4+4=8....(下排,第二圈)

            for ($k = 0; $k <= 1; $k++) {
                echo '<tr>';
                for ($j = 2; $j <= 5; $j++) {
                    $newj = $j + $k * 4;
                    echo '<td>';
                    for ($i = 1; $i <= 9; $i++) {
                        $r = 2 * $i;          //$r装答案
                        echo " {$newj} x {$i} = {$r} <br>\n";
                    }
                    echo '<td>';
                }
                echo '<tr>';
            }

11.PHP的写常数(常数:固定不变的数)define

    define("ROW", 4);
    define("COL", 4);
    define("START", 2);

    for ($k = 0; $k < ROW; $k++) {
        echo '<tr>';
        for ($j = START; $j < START + COL; $j++) {
            $newj = $j + $k * COL;

            if (($j + $k) % 2 == 0) {
                echo '<td bgcolor="yellow">';
            } else {
                echo '<td bgcolor="pink">';
            }

            for ($i = 1; $i <= 9; $i++) {
                $r = $newj * $i;
                echo "{$newj} x {$i} = {$r}<br />\n";
            }
            echo '</td>';
        }
        echo '</tr>';
    }

改成常数,之後就会很好控制~弹性高!常数不用$


<<:  学习Ruby、Rails事前准备工作

>>:  HTML5-解决数值输入框可以输入字母"e"及"."问题

Unity与Photon的新手相遇旅途 | Day18-技能冷却

今天的内容为教大家如何制作技能冷却的效果。 ...

【设计+切版30天实作】|Day9 - 把Bootstrap预设的Carousel新增变化

设计大纲 一个平台要成功,当然少不了图片/照片的介绍(很爱看图的懒人XD),所以接下来要设计一个区块...

教练,我想创业...

近期接触到了这本书:「麻省理工 MIT 黄金创业课」 透过六大面向以及二十四个步骤来系统性地提升创业...

[Day11]PHP函数01

PHP函数 自定义函数 函数可用以下语法来定义 <?php function foo($arg...

DAY16 - 档案处理 - 上传前预览

接下来的范例都会以vue.js语法撰写喔! 情境 在上传图档到server前,须在前端UI上显示预览...