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(上排,第一圈)
14 = 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>'; }
改成常数,之后就会很好控制~弹性高!常数不用$