PHP基础语法知识(一)

文章目录

  • PHP语法
    • echo 输出
    • PHP实例
    • PHP 中的注释
    • PHP变量
    • 创建(声明)PHP 变量
    • PHP 变量作用域
    • 局部和全局作用域(loacal / global)
    • PHP global 关键字
    • Static 作用域
    • 参数作用域
    • PHP echo 和 print 语句
      • echo 语句
      • print 语句
    • 数据类型
      • 整型(int)
      • 字符串(String)
      • 浮点型(float)
      • 布尔型(bool)
      • 数组(Array)
      • 对象(Object)
      • NULL(空值)
        • empty()
        • isset()
    • 字符串变量
      • PHP 并置运算符
      • strlen() 函数
      • strpos() 函数
    • PHP常量
      • 设置 PHP 常量
      • 内置常量
    • PHP运算符
      • PHP算术运算符
      • 赋值运算符
      • 字符串运算符
      • 递增/递减运算符
      • 比较运算符:
      • 逻辑运算符
      • 数组运算符
      • 三目运算符
    • if...else...elseif 语句
      • if 语句
      • if. . .else 语句
      • if...elseif....else 语句
    • switch 语句
    • 数组
      • 关联数组
      • count($变量)
      • for循环遍历索引数组
      • foreach循环数组
      • foreach遍历连续的索引数组
    • 数组排序
      • 数组排序函数
        • sort()函数
        • asort()函数
        • ksort()函数
    • PHP循环
      • while 循环
      • do...while 循环
      • For 循环
      • foreach 循环

PHP语法

PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器;可以放在文档中的任何位置;PHP 以 尖括号、问号、PHP 问号、尖括号结束:


//这里是我们要写的PHP代码
?>

PHP 文件的默认文件扩展名是 ".php"; 通常包含 HTML 标签和一些 PHP 脚本代码

echo 输出

echo 是在PHP里面最常用的一个输出、输出显示功能的命令。
可以让他显示任何可见的字符。

PHP实例

<!DOCTYPE html>
<html>
<body>


echo "Hello World!";
?>

</body>
</html>

运行效果:
在这里插入图片描述

PHP 中的注释

PHP的注释主要有:

单行注释(只注释一行)
// 双斜杠表示单行注释 有时也用 # 表示 但用的比较少,多用 //
多行注释(注释多行)
以 /* 开始 */结束 代表多行注释
注释实例:

/*
 author:李子
 date:2020-06-28
 功能:这是一个php的多行注释的例子
 */
 

 //声明一个string变量
 $string ="欢迎学习php!";
 
 //显示输出string字符串变量
 echo $string;
 

?>

在这里插入图片描述

PHP变量

变量是用于存储数据和信息的"容器":

php变量的规范:

  1. PHP的变量必须以美元符$开始,例如声明一个价格的变量:$price( $ 叫作美元符,英文单词:dollar)
  2. 变量的首字母不能以数字开始
  3. 变量的名字区分大小写
  4. 变量不要用特殊符号、中文,_不算特殊符号
  5. 变量命名要有意义(别写xx,a,b,c这种 变量名,尽量用英文规范命名)

创建(声明)PHP 变量

PHP 是一门弱类型语言,没有声明变量的命令,变量在第一次赋值给它的时候被创建 不必向 PHP 声明该变量的数据类型,PHP 会根据变量的值,自动把变量转换为正确的数据类型。 而在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。



 $string="Hello world!";
 $x=5;
 $y=10;
 
 ?>

PHP 变量作用域

变量的作用域是脚本中变量可被引用/使用的部分
PHP 有四种不同的变量作用域:

  • local
  • global
  • static
  • parameter

局部和全局作用域(loacal / global)

在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global关键字


 header("Content-type:text/html;charset=utf-8");
 $num=5; // 全局变量
 
 function myDemo()
 {
     $num2=10; // 局部变量
     echo "

测试函数内变量:

"; echo "变量 num 为: $num"; //输出错误 Notice: Undefined variable: echo "
"
; echo "变量 num2 为: $num2"; } myDemo(); echo "

测试函数外变量:

"; echo "变量num 为: $num"; echo "
"
; echo "变量 num2 为: $num2"; //输出错误 Notice: Undefined variable:

运行结果:
PHP基础语法知识(一)_第1张图片
在以上实例中 myDemo() 函数定义了 $num和 $num2 变量。 $num变量在函数外声明,所以它是全局变量 , $num2变量在函数内声明所以它是局部变量。

当我们调用myDemo()函数并输出两个变量的值, 函数将会输出局部变量 $ynum2 的值,但是不能输出 $num 的值,因为 $num变量在函数外定义的,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。在myDemo() 函数外输出两个变量的值,函数将会输出全局部变量 $num 的值,但是不能输出 $num2 的值,因为 $num2 变量在函数中定义,属于局部变量。

注 你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。

PHP global 关键字

global 关键字用于函数内访问全局变量


 $n1=5;
 $n2=10;
 function myDemo(){
     global $n1,$n2;  //使用global关键字
 
     $n2=$n1+$n2;
 }
 
myDemo();
 echo $n2;   //输出10
 
 ?>

Static 作用域

当一个函数执行完成后,它的所有变量通常都会被删除清除。然而,有时候希望某个局部变量不要被删除。可以在第一次声明变量时使用 static 关键字:


 function myDemo()
 {
     static $n=0;
     echo $n;
     $n++;
 }
 myDemo();
 echo "
"
; myDemo(); echo "
"
; myDemo(); echo "
"
; myDemo(); ?>

结果:
PHP基础语法知识(一)_第2张图片

参数作用域

参数是通过调用代码将值传递给函数的局部变量。参数是在参数列表中声明的,作为函数声明的一部分:


 
 function myDemo($num)
 {
     echo $num;
 }
 
 myDemo(type);
 
 ?>

结果:
在这里插入图片描述

PHP echo 和 print 语句

在 PHP 中有两个基本的输出方式: echo 和 print。

echo 语句

echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。


echo "

PHP

"
; echo "Hello world!
"
; echo "欢迎学习php!
"
; echo "Welcome", " to", " studing"; ?>

结果:
PHP基础语法知识(一)_第3张图片

print 语句

print 跟echo同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。



$str = "

PHP

"
; print $str; print "Hello world!"."
"
; print "欢迎学习php!"."
"
; print "Welcome to studing php"; ?>

结果:
PHP基础语法知识(一)_第4张图片
注意:echo 和 print 区别:
· echo - 可以输出一个或多个字符串
· print - 只允许输出一个字符串,返回值总为 1
· echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

数据类型

PHP的数据类型包括以下几种,

  • Integer(整型)
  • String(字符串)
  • Float(浮点型),
  • Boolean(布尔型)
  • Array(数组)
  • Object(对象)
  • NULL(空值)

查看数据类型的方式:

  1. gettype() 能够获得变量的类型
  2. var_dump() 输出变类型和值 (常用)
    var_dump() 是一个函数。向括号()中间插入变量。这个函数,会打印出来数据类型,还会对应显示变量的长度和值。

整型(int)


 $a = 6868;     //十进制
 var_dump($a);
 echo "
"
; $a = -10; // 负数 var_dump($a); echo "
"
; $a = 0x8C; // 十六进制数 var_dump($a); echo "
"
; $a = 047; // 八进制数 var_dump($a); ?>

结果:
PHP基础语法知识(一)_第5张图片

字符串(String)

在PHP语言中声明字符串有三种方式:

  • 用单引号声明
  • 用双引号声明
  • 用字界符声明(需要输入非常大段的字符串时使用)

 $a = "Hello world!";
 echo $a;
 ?>

结果:
在这里插入图片描述

浮点型(float)

所谓浮点类型,类似于数学里面的小数


 //声明变量f的值为2323.3123
 $f = 2323.3123;
 echo $f;
 echo "
"
; //声明变量$fl 的值为0.8873 $fl = 0.4567; var_dump($fl); ?>

结果:
在这里插入图片描述

布尔型(bool)

布尔类型就是:真和假

  • true(真)
  • false(假)

//声明一个变量为布尔
$buer = true;
//声明一个变量布尔值为false
$bool = false;
?>

数组(Array)

数组就是在一个变量中存储多个类型相同的值



 $languages=array("php","java","c语言","python","C#");
 
 var_dump($languages);
 ?>

结果:
在这里插入图片描述

对象(Object)

对象是存储数据和有关如何处理数据的信息的数据类型,在 PHP 中,必须明确地声明对象。
可以使用 class 关键词声明对象的类。类是包含属性和方法的结构


class myCars
{
    var $name;
    function myCars($name="奔驰") {
        $this->name = $name;
    }
    function what_name() {
        return $this->name;
    }
};
?>

NULL(空值)

空(null)不是false,不是0,也不是空格,代表没有。
主要有以下三空情况会产生空(null)类型:

  • 通过变量赋值明确指定为变量的值为NULL
  • 一个变量没有给任何值
  • 使用函数unset()将变量销毁掉

 //声明变量为null
 $n = null;
 var_dump($n);
 
 //var_dump显示输出变量$meiyou,看看结果是什么?
 var_dump($null);
 
 //声明一个变量$string的值为php的字符串
 $string = 'php';
 
 //unset销毁掉一个变量
 unset($string);
 
 var_dump($string);
 ?>

结果:
在这里插入图片描述

empty()

empty()可以向括号中间传入一个变量。这个变量的值如果为false或者为null的话,返回true



 $string = null;
 if(empty($string)){
     echo '执行了真';
 }else{
     echo '行了假';
 }
 
 ?>

结果:
在这里插入图片描述

isset()

isset()可以向括号中间传入一个或者多个变量,变量与变量间用逗号分开。只要有一个变量为null,则返回false。否则,则返回true。



 $x = 10;
 $y = false;
 $i = 0;
 $j = null;
 $result = isset($x , $y , $i , $i);
 var_dump($result);
 
 ?>

结果:
在这里插入图片描述
unset()这个函数的功能是毁掉变量。unset(变量)括号中间插入想要毁掉的变量名,这个变量就会被毁掉。

字符串变量

字符串变量用于存储并处理文本和包含有字符的值。
在创建字符串之后,我们就可以对它进行操作了。可以直接在函数中使用字符串,或者把它存储在变量中。


 $string="Hello world!";
 echo $string;
 ?>

结果:
在这里插入图片描述

PHP 并置运算符

在 PHP 中,只有一个字符串运算符,并置运算符.(点)用于把两个字符串值连接起来。



 $str="大家好!";
 $str2="我是程序媛!";
 
 echo $str . " ++++" . $str2;
 ?>

结果:
在这里插入图片描述

strlen() 函数

strlen() 函数返回字符串的长度(字符数)。
注意:在UTF-8下 strlen 把中文字符算成 3 个字节,英文,空格,符号占 1 个字节。



 $str="李";
 echo strlen($str);
 
 echo "
"
; echo strlen("Hello world!"); ?>

结果:
在这里插入图片描述

strpos() 函数

strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。


 echo strpos("Hello world!","world");
 ?>

结果:
在这里插入图片描述
world在第六个字符开始
注意:字符串中第一个字符的位置是 0,而不是 1

PHP常量

常量可以理解为:永久不变的值,常量值被定义后,在脚本的其他任何地方都不能被改变,有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。常量名可以小写,但是通常大写
注释:与变量不同,常量贯穿整个脚本是自动全局的。

设置 PHP 常量

设置常量,使用 define() 函数 - 它使用三个参数:

  • 首个参数定义常量的名称
  • 第二个参数定义常量的值
  • 可选的第三个参数规定常量名是否对大小写敏感。默认是 false。


 define("STRING", "Welcome to PHP!");
 echo STRING;
 
 ?>

结果:
在这里插入图片描述
常量是全局的,常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用

内置常量

常量名 说明
LINE 当前所在的行
FILE 当前文件在服务器的路径
FUNCTIOIN 当前函数名
CLASS 当前类名
METHOD 当前成员方法名
PHP_OS PHP运行的操作系统
PHP_VERSION 当前PHP的版本
TRAIT Trait 的名字,php5.4新加
DIR 文件所在的目录
NAMESPACE 当前命名空间的名称(区分大小写)

PHP运算符

PHP算术运算符

运算符 名称 例子 结果
+ 加法 $a + $b $a 与 $b 求和
- 减法 $a - $b $a 与 $b 的差数
* 乘法 $a * $b $a与 $b 的乘积
/ 除法 $a/ $b $a与 $b的商数
% 取余也叫取模、求模 $a % $by $a 除 $b 的余数

 $a=5;
 $b=10;
 echo ($a + $b)."
"
; echo ($a - $b)."
"
; echo ($a * $b)."
"
; echo ($a % $b)."
"
; ?>

结果:
PHP基础语法知识(一)_第6张图片

赋值运算符

我们在数学里面把 = (一个等号)叫作赋值运算符,即:把等号右边的值,赋值给等号左边的变量,左边的变量就为右边的值。

运算符 名称 例子 结果
+ 加法 $a + $b $a 与 $b 求和
- 减法 $a - $b $a 与 $b 的差数
* 乘法 $a * $b $a与 $b 的乘积
/ 除法 $a/ $b $a与 $b的商数
% 取余也叫取模、求模 $a % $by $a 除 $b 的余数
符号 举例 等价式
+= $a += $b $a = $a+ $b
-= $a -= $b $a = $a - $b
*= $a *= $b $a = $a * $b
/= $a /= $b $a = $a/ $b
%= $a %= $b $a = $a % $b
$a .= $b $a = $a. $b

字符串运算符

运算符 名称 例子 结果
. 串接 $str1 = “Hello” $str2 = $str1 . " world!" 现在 $str2 包含 “Hello world!”
.= 串接赋值 $str1 = “Hello” $str1 .= " world!" 现在 $str1 包含 “Hello world!”

递增/递减运算符

把自己加一或减一

符号 说明
$a++ 先赋值后加
$a– 先赋值后减
++$a 先加后赋值
–$a 先减后赋值

比较运算符:

PHP 比较运算符用于比较两个值(数字或字符串):

运算符 名称
== 等于
=== 全等(完全相同)
!= 不等于
<> 不等于
!== 不全等(完全不同)
> 大于
< 小于
>= 大于或等于
<= 小于或等于

逻辑运算符

运算符 名称
and
or
xor 异或
&&
||
!

数组运算符

运算符 名称 例子 结果
+ 联合 $x + $y $x 和 $y 的联合(但不覆盖重复的键)
== 相等 $x == $y 如果 $x 和 $y 拥有相同的键/值对,则返回 true。
=== 全等 $x === $y 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。
!= 不相等 $x != $y 如果 $x 不等于 $y,则返回 true。
<> 不相等 $x <> $y 如果 $x 不等于 $y,则返回 true。
!== 不全等 $x !== $y 如果 $x 与 $y 完全不同,则返回 true。

PHP 数组运算符用于比较数组

三目运算符

三目运算符的格式:

(expr1)?(expr2):(expr3); //表达式1?表达式2:表达式3

if…else…elseif 语句

if 语句

if 语句用于在指定条件为 true 时执行代码。语法:

if(条件){

  条件为真得时候执行
}

 $age=19;
 if($age<18){
     echo "成年人";
 }//输出成年人
 ?>

if. . .else 语句

使用 if…else 语句在条件为 true 时执行代码,在条件为 false 时执行另一段代码。语法:

if(条件){
  条件为真得时候执行
} else {
条件为假得时候执行
}

 $age=19;
 if($age>18){
     echo "成年人";
 }else{
 echo "未成年人"}//输出成年人
 ?>

if…elseif…else 语句

if....elseif...else 语句来选择若干代码块之一来执行。语法:
if(条件1){
  条件1为真得时候执行
}  elseif(条件2) {
条件2为真得时候执行
}
else{
 条件不满足的时候执行
}

 $age=19;
 if($age>18){
     echo "成年人";
 }esleif($age=18){
     echo "成年人"
 }else{
    echo "未成年人"}//输出成年人
 ?>

switch 语句

switch 语句用于根据多个不同条件执行不同动作。语法:

switch(整型表达式)
{
    case 常量表达式1:语句1
    case 常量表达式2:语句2
    //……
    case 常量表达式n-1:语句n-1
    default:语句n
}

$w = date("w"); 
switch($w){ 
case 1 : echo "今天是星期一";break; 
case 2 : echo "今天是星期二";break; 
case 3 : echo "今天是星期三";break; 
case 4 : echo "今天是星期四";break; 
case 5 : echo "今天是星期五";break; 
case 6 : echo "今天是星期六";break; 
case 0 : echo "今天是星期日";break; 
default : echo "你输入有误!"; 
}
?>

数组

数组可以存入多个不同类型的数据,是一个复合数据类型。可以使用array()来初始化数组,每个数组元素之间使用逗号分隔


 header("Content-type:text/html;charset=utf-8");    //设置编码
 
 $array=array(100,1.34,true,"php",);
 echo '
';
 var_dump($array);
 echo '
';
 ?>

结果:
PHP基础语法知识(一)_第7张图片

关联数组

只要数组里面有一个为字符串的数组,就为关联数组。
声明关联数组必须要指定字符串的下标和必须要使用键值对应符。


 $arr=[            //用[]创建数组
     'name'=>'张三',
     'age'=>'22',
     'gender'=>'male'
 ];
 echo "
";
 var_dump($arr) ;
 echo"
"
?>

结果:
PHP基础语法知识(一)_第8张图片
注意:声明关联数组是 键名 => 值,在关联数组可以有索引数组的元素

count($变量)

函数用于返回数组的长度(元素数):


$name=Array('张三','李四','王五');
echo count($name);
?>

结果:
在这里插入图片描述

for循环遍历索引数组

for循环是一个单纯的计数型循环,而索引数组的下标为整型的数值。可以通过for循环来遍历索引数组。


 $arr=Array('张三','李四','王五');
 $arrlength=count($arr);
 for($x=0;$x<$arrlength;$x++){
     echo $arr[$x];
     echo  "
"
; } ?>

结果:
在这里插入图片描述

foreach循环数组

专门用来循环数组的。基本语法:

foreach( 要循环的数组变量 as [键变量 =>] 值变量){
    //循环的内容
}
?php
 $arr=[
     'name'=>'张三',
     'age'=>'22',
     'gender'=>'male'
 ];
 foreach($arr as $key=>$value){
     echo $key.": ".$value."
"
; }; ?>

结果:
在这里插入图片描述
注意:$key 和$value并不是变量名必须得为这两个名字。命名可以为其他的,如 $k => $val是一样的。 清楚键赋值 给了哪个变量,值赋值给了另外的哪个变量就可以了。

foreach遍历连续的索引数组


 header("Content-type:text/html;charset=utf-8");    //设置编码
 $data = array(
     0 => 'java',
     10 => 'php',
     20 => 'c#',
     30 => 'python',
 );
  
 foreach($data as $k => $v){
     echo $k . '+++++' . $v .'
'
; } ?>

结果:
PHP基础语法知识(一)_第9张图片

数组排序

数组中的元素可以按字母或数字顺序进行降序或升序排列。

  • 升序:从小到大的顺序进行排序,如果是英文单词,那么按字母A-Za-z的顺序排序,如果是数字,那么按数字的大小进行排序。
  • 降序:与升序相反

数组排序函数

  • sort() - 对数组进行升序排列
  • rsort() - 对数组进行降序排列
  • asort() - 根据关联数组的值,对数组进行升序排列
  • ksort() - 根据关联数组的键,对数组进行升序排列
  • arsort() - 根据关联数组的值,对数组进行降序排列
  • krsort() - 根据关联数组的键,对数组进行降序排列

sort()函数

`sort大多是用来排序数字索引数组的,如果把一个关联数组放到sort里排序,那么数组的键会丢失


 $arr=array(10,2,81,45,Y,M,w,s,a,H,35,A,P);
 sort($arr);
 print_r($arr);
 ?>

结果:
在这里插入图片描述

asort()函数

使用数组的值进行排序


 $age=array("张三"=>"25","李四"=>"18","王五"=>"23","赵六"=>"28");
 asort($age);
 print_r($age);
 ?>

结果:
在这里插入图片描述

ksort()函数

对键进行排序


 $age=array("张三"=>"25","李四"=>"18","王五"=>"23","赵六"=>"28");
 ksort($age);
 print_r($age);
 ?>

结果:
在这里插入图片描述

PHP循环

  • while - 只要指定条件为真,则循环代码块

  • do…while - 先执行一次代码块,然后只要指定条件为真则重复循环

  • for - 循环代码块指定次数

  • foreach - 遍历数组中的每个元素并循环代码块

while 循环

while是一个布尔型循环,while(布尔判断)的值为true就执行大括号括起来的代码。如果为假就停出去,执行后续代码。语法:

while (条件为 true){
    //执行的代码;
}

 header("Content-type:text/html;charset=utf-8");    //设置编码
 $n=1;
 while($n<=5){
     echo "这个数是:".$n ."
"
; $n++; } ?>

结果:
PHP基础语法知识(一)_第10张图片

do…while 循环

do…while与while的区别是,它们的值的检查时机不同。
do-while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)。而while循环会检查布尔判断区域,成立则执行。不成立则不执行。
语法:

do{
//执行的代码;
}while (条件为 true);

 header("Content-type:text/html;charset=utf-8");    //设置编码
 $n=1;
 do {
     echo "这个数字是:$n 
"
; $n++; } while ($n<=5); ?>

结果与上面是一样的

For 循环

for 循环是 PHP 中的一种计数型循环,语法:

for(表达式1,表达式2,表达式3){
     需要执行的代码
}

表达式1 是初始化赋值,可以同时赋值多个代码;表达示2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环;表达示3 在每次循环之后被求值。


header("Content-type:text/html;charset=utf-8");    //设置编码
for($n=1;$n<5;$n++){
    echo $n."
"
; } ?>

结果:
在这里插入图片描述

foreach 循环

语法

foreach( 要循环的数组变量 as [键变量 =>] 值变量){
//循环的结构体
}

这是一个固定用法,将要循环的数组放进去,as 是一个固定的关键字,后面的键变量是可选的,随意定义一个变量,每次循环的时候,foreach这个语法会把键取出来赋值到键变量里面


header("Content-type:text/html;charset=utf-8");    //设置编码
$arr = array(
    'str' => 'java',
    'str2' => 'php',
    'str3' => 'python',
);

foreach($arr  as $key => $value){
    echo $key . '=>' . $value . '
'
; } ?>

结果:
PHP基础语法知识(一)_第11张图片

你可能感兴趣的:(后端)