PHP基础语法

一、基本用法

编码语言分类:

1、解释型:PHP、JavaScript、Python、VBScript……:几乎都是弱类型语言,执行速度较慢,通常用于各类快速开发场景,并非专业程序员专属。

2、编译型:C、C++、C#、Java、Go、Rust……..:几乎者是强类型评语,一旦完成编译,执行速度很快,通常用于专业程序设计场景。

1、代码块

PHP是运行于Web服务器中,主要用于网页的处理。

 <?php
     // 必须要使用<?php    ?> 进行代码的包裹
 ?>
 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <?php
         // 可以在PHP的源文件中,直接写HTML代码
     ?>
 </body>
 </html>
2、注释
 <?php
     // 必须要使用<?php >进行代码的包裹,只能注释一行
     /* 可以用于注释一行或者一个段落  */
 ?>
3、内容输出
 <?php
     // 必须要使用<?php >进行代码的包裹,只能注释一行
     /* 可以用于注释一行或者一个段落  */
     /**
      * 在PHP中,可以通过两个函数往页面中输出注释:
      * (1)echo:支持用逗号分隔多个字符进行拼接输出
      * (2)print:不支持用逗号分隔多个字符进行拼接输出
      * 注意:在PHP中,换行符\n无法被浏览器解析,<br>才能被浏览器解析
      */
     echo "这是一个牛逼的网页. <br/>";
     print "这又是一个更牛逼的网页.<br>";
     echo "1111111111", "2222222222", "333333333<br>";
     // print "1111111111", "2222222222", "333333333";    // print不能跟逗号分隔多个字符串
     // 在PHP中,. 表示字符串连接符
     echo "1111111111" . "2222222222" . "333333333<br/>";
     print "1111111111" . "2222222222" . "333333333<br/>";
     echo "你好,你的余额为:" . 20000 . "元";
 ?>

也可以在PHP中直接写HTML,或者用echo输出HTML,这种混合输出也是支持的

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>这是PHP页面</title>
 </head>
 <body>
     <?php
         // 可以在PHP的源文件中,直接写HTML代码
         // echo "如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true";
         echo "<div style='width: 300px; height: 200px; border: solid 2px red;'>" . `time /T` . "</div>";
     ?>
 </body>
 </html>
4、引号
 /**
 * 引号的问题:
 * 1、双引号:里面可以包裹字符串和变量
 * 2、单引号:单引号只能表示字符串,不能引用变量
 * 3、反引号:用于执行操作系统命令并返回结果
 */
 $addr = "四川成都";
 echo "你当前所在城市为:$addr <br/>";
 echo '你当前所在城市为:$addr <br/>';
 echo `ipconfig`;
5、编码格式
 /**
  * 为什么执行ipconfig命令时,会在网页上输出乱码:是因为网页的编码是UTF-8,而操作系统的编码格式是GBK(中文编码)
  * 1、使用PHP内置函数:header 往网页中写入GBK的响应头,让浏览器按照GBK的编码格式处理,
  *    但是,此种方法会导致整个页面都会变成GBK的编码格式,而如果页面中其他位置的内容不是GBK,则会变成乱码
  * 2、使用PHP内置函数:iconv 来对需要进行转码的文本进行编码格式的转换,不影响其他内容
  */
 // header("content-type:text/html; charset='GBK'");
 $result = `ipconfig`;
 $result = iconv("GBK", "UTF-8", $result);    
 echo $result;
6、通信过程

image-20210907165757579

二、变量

1、数据类型
 String(字符串): "成都"  "Hello"
 Integer(整型):12345   -200
 Float(浮点型):123.45  -12345.678
 Boolean(布尔型): true  false
 Array(数组):一组数据的集合 
 Object(对象):
 NULL(空值):
2、命名规范
 变量以 $ 符号开始,后面跟着变量的名称
 变量名必须以字母或者下划线字符开始
 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
 变量名不能包含空格
 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
 变量名不能用中文全拼,最好使用英文单词
 变量名不能用无意义的简写,WB,XY,但是常规的简写是可以的,html, css, js, mp4
 函数名必须使用动词或动名词形式
 变量名或函数或等,首字母小写,如果有多个单词,第二单词的首字母建议大写:checkNumber,  check_number

三、运算符

1、算术运算符
运算符 名称 描述 实例 结果
x + y x 和 y 的和 2 + 2 4
x - y x 和 y 的差 5 - 2 3
x * y x 和 y 的积 5 * 2 10
x / y x 和 y 的商 15 / 5 3
x % y 模(除法的余数) x 除以 y 的余数 5 % 2 10 % 8 10 % 2 1 2 0
- x 取反 x 取反 x =2; echo -x -2
a . b 并置 连接两个字符串 “Hi” . “Ha” HiHa
2、赋值运算符
运算符 等同于 描述
x = y x = y 左操作数被设置为右侧表达式的值
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y 模(除法的余数)
a .= b a = a . b 连接两个字符串
3、自增自减运算符
运算符 名称 描述
++ x 预递增 x 加 1,然后返回 x
x ++ 后递增 返回 x,然后 x 加 1
— x 预递减 x 减 1,然后返回 x
x — 后递减 返回 x,然后 x 减 1
4、比较运算符
运算符 名称 描述 实例
x == y 等于 如果 x 等于 y,则返回 true 5==8 返回 false
x === y 绝对等于 如果 x 等于 y,且它们类型相同,则返回 true 5===”5” 返回 false
x != y 不等于 如果 x 不等于 y,则返回 true 5!=8 返回 true
x <> y 不等于 如果 x 不等于 y,则返回 true 5<>8 返回 true
x !== y 绝对不等于 如果 x 不等于 y,或它们类型不相同,则返回 true 5!==”5” 返回 true
x > y 大于 如果 x 大于 y,则返回 true 5>8 返回 false
x < y 小于 如果 x 小于 y,则返回 true 5<8 返回 true
x >= y 大于等于 如果 x 大于或者等于 y,则返回 true 5>=8 返回 false
x <= y 小于等于 如果 x 小于或者等于 y,则返回 true 5<=8 返回 true
5、逻辑运算符
运算符 名称 描述 实例
x and y 如果 x 和 y 都为 true,则返回 true x=6 y=3 (x < 10 and y > 1) 返回 true
x or y 如果 x 和 y 至少有一个为 true,则返回 true x=6 y=3 (x6 or y5) 返回 true
x xor y 异或 如果 x 和 y 有且仅有一个为 true,则返回 true x=6 y=3 (x6 xor y3) 返回 false
x && y 如果 x 和 y 都为 true,则返回 true x=6 y=3 (x < 10 && y > 1) 返回 true
x || y 如果 x 和 y 至少有一个为 true,则返回 true x=6 y=3 (x5 || y5) 返回 false
! x 如果 x 不为 true,则返回 true x=6 y=3 !(x==y) 返回 true