PHP基础知识
一、PHP基本语法
1、PHP语言标记
1)PHP开始标记
<?php
2)PHP结束标记
?>
3)PHP页面最终也是通过html,css,js来展示出一个绚丽的界面
4)PHP可以嵌套在html代码中的任何位置,并且可以嵌入多个
5)文件末尾的?>可以省略
2、指令分隔符”;”
1)在一些PHP语句的结尾要加上”;“表示一句话的结束,当然也不需要刻意的去记,一旦漏掉分号会报错
2)结束标记?>隐含了一个”;“,所以在?>之前的php可以省略分号
3、注释
1)多行注释
/*
多行注释
*/
2)单行注释
//单行注释
4、遇到空白的处理:空格,tab制表符,换行这些写在我们的PHP代码里面是没有问题的
二、变量
举例子:
现实生活中我们在家里会用柜子来存放我们的衣服,包,书籍等其他的东西
在程序中没有衣服,包,书籍等东西
我们只有数据!我们在程序中这些数据就存放在变量中
变量用于临时(只有在我们的程序运行过程中才存在)存储数据的容器
1.变量的声明
声明:说白了就是事先告知,通知!在使用变量之前要事先通知,事先声明一下。注意:在PHP中使用变量是不用声明的
变量用于存储数字、文本字符串 或者数组这些数据
$变量名 = 数据(值)(注意:”=” 在数学里面是”等于”的意思,在程序中 “=” 他是赋值操作符)
2.变量的销毁
unset($变量名称);
例如:
<?php
$name = 1;
unset($name);
echo $name;
?>
3.变量的命名规则
1)变量名称严格区分大小写:$name和$Name都是不同的变量
2)变量以字母或者下划线开头,后面接任意数量的字母数字下划线都可以。
注意:错误的命名方式:
$1name 错误点:以数字开头了
$n ame 错误点:变量中间有空格
最好不要用关键字作为变量(在其他语句中是不能是用关键字作为变量的)
4.可变变量
例如:
<?php
//可变变量
$abc = "name";
$$abc = "张三";
echo $name;
?>
5.变量的引用赋值
例如:
<?php
$a = 1000;
/*$b = $a;//将$a的值复制一份,再赋值给$b*/
$b = &$a;//给$a取了一个别名,操作其中任何一个,都会改变另一个的值
$b = 100;
echo $b;
?>
三、变量类型
概述:变量类型是指保存在该变量中的数据;类型变量比喻成柜子 衣服,书籍;PHP对变量类型看的比较淡
1.数据类型简介
1)bool(布尔型)
这些值的结果为false:布尔值false,0,浮点型0.0,空白字符串和字符串0,没有成员的数组,NULL
<?php
//往变量里面存true或者false,那么这个变量就是布尔型了
$a = true;
var_dump($a);
?>
2)int(整型)
<?php
//往变量里面存放整数,那么这个变量就是整型变量了
$a = 1;
var_dump($a);
?>
3)float(浮点型,也称double)
<?php
//往变量里面存小数,那么这个变量就是浮点型数据了
$a = 1.1;
var_dump($a);
?>
4)string(字符串)
<?php
//字符串就是一系列的字符组成串在一起
//1、单引号:
$b = 1;
$a = 'te$bst\'qwjkdajk';
var_dump($a);
echo $a;
//2、双引号;
$b = 1;
$a = "te{$b}st\'qwjkdajk";
var_dump($a);
echo $a;
//3、定界符
$b = 200;
$a = <<<aaa
akjlhj{$b}kafhkalfjakfjkafjljklajkdjfa
aaa;
var_dump($a);
?>
5)null
<?php
$a = 1111;
unset($a);
var_dump($a);
?>
2.变量类型相互转换
程序运行中不太可控的部分所以在编写代码时尽量不要使用(强制转换类型不会改变变量原有的类型;注意:如果将变量赋给变量本身将会改变变量原有的类型)
$a = '张三';
$b = (int)$a;
var_dump($a);
var_dump($b);
变量类型的测试函数
1. is_bool();
2. is_int();
3. is_array();
四、常量
1.概念:常量用于临时(只有在我们的程序运行过程中才存在)存储数据的容器
2.定义和使用
define('常量名称',常量值) 或者 define("常量名称",常量值)
*** 常量的命名:1)和变量命名的规则是一样的,只能包含字母数字下划线,并且必须以 字母和下划线开头***
2)按照惯例常量名总是大写
3)自定义的常量严格区分大小写的!
是用difined()函数来判断是否定义了一个常量
3.常量和变量的区别
1)常量前面没有$符号;
*** 2)常量只能用define()函数定义,不能通过赋值语句;***
*** 3)常量可以不用理会变量范围的规则而在任何地方定义和是用;***
*** 4)常量一旦被定义就不会被取消定义和重新定义;***
*** 5)常量的值只能是boolean,int,float,double,string类型;***
4.预定义常量
预定义常量说白了就是我们PHP内核已经定义好的常量;其中有一些预定义常量是以“__”开头的,这些预定义常量又叫做魔术常量;
代码所在的位置不同他的值也不同,所以他加 魔术常量;
八个常用的魔术常量
//__LINE__:文件中的当前行号
echo __LINE__;
//__FILE__:文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名
echo __FILE__;
//__DIR__:文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。
echo __DIR__;
//__FUNCTION__:当前函数的名称。匿名函数则为 {closure}
echo __FUNCTION__;
//__CLASS__:当前类的名称。类名包括其被声明的作用域(例如 Foo\Bar)。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字
echo __CLASS__
//__TRAIT__:Trait的名字。Trait 名包括其被声明的作用域(例如 Foo\Bar)
echo __TRAIT__;
//__METHOD__:类的方法名
echo __METHOD__;
//__NAMESPACE__:当前命名空间的名称
echo __NAMESPACE__;
//ClassName::class:完整的类名
echo ClassName::class;
预定义常量不区分大小写
五、运算符
概述:说白了就是一些符号,这些符号可以将变量或者数据执行某种运算。
1.算术运算符
1)+(加号)
$a = 1;
$b = 2;
$c = $a + $b;
echo $c;
2)- (减号或者取反)
//第一个意思:减号“-”
$a = 10;
$b = 2;
$c = $a - $b;
echo $c;
//第二个意思:取反
$a = 1;
$b = -$a;
echo $a;
echo '<br />';
echo $b;
3)* (乘号)
$a = 10;
$b = 2;
$c = $a * $b;
echo $c;
4)/ (除号)
$a = 10;
$b = 2;
$c = $a / $b;
echo $c;
5)% (取模)
$a = 10;
$b = 2;
$c = $a % $b;
echo $c;
6)++ (自增)
//前++ : 可以理解为先将该变量自增之后,在进行赋值
//当在一个语句中需要使用到被自增的变量的值的时候,前++会先执行自增,再返回自增之后的值
$a = 10;
echo ++$a; //===》$a=$a+1;echo $a;
//后++ : 可以理解为先将该变量的值赋给另一个变量或者本身,然后在进行自增
//当在一个语句中需要使用到被自增的变量的值的时候,后++会先输出变量的值,在进行自增
$a = 10;
echo $a++; //===>echo $a;$a=$a+1;
7)– (自减)
//前-- : 可以理解为先将该变量自减之后,在进行赋值
//当在一个语句中需要使用到被自减的变量的值的时候,前--会先执行自减,再返回自减之后的值
$a = 10;
echo --$a; //===》$a=$a+1;echo $a;
//后-- : 可以理解为先将该变量的值赋给另一个变量或者本身,然后在进行自减
//当在一个语句中需要使用到被自减的变量的值的时候,后--会先输出变量的值,在进行自减
$a = 10;
echo $a--; //===>echo $a;$a=$a+1;
注意:自增自减只对变量有用
2.字符串运算符
. 连接运算符
$a = '张三';
$b = "链接的语句";
echo $a.$b;
3.赋值运算符
=
赋值符:把右边的值赋给左边的变量
$a = 1; 二元运算符
表达式:表达式是 PHP 最重要的基石。在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。
+=:将左边变量的值与右边变量的值相加,并将结果赋值给左边的变量;例如:
$a = 1;
$a += 1;//写成 $a=$a+1;
echo $a;
-=、*=、/=、%=、.=都与+=是一样的意思
4.比较运算符
对操作数(按照比较运算符的要求,规则)进行比较
如果比较出的结果满足比较运算符的要求那么结果就是true,否则就是false
PHP规定:使用echo输出布尔类型值的时候,true输出的结果为1,false输出的结果在页面上什么都没有输出;我们在测试过程中需要输出布尔类型值的时候使用var_dump进行输出
1)== (值是否相等):判断两个变量的值是否相等,相等为真,否则为假
2)===(全等):值要相等,类型也要相等;判断两个变量的值和类型是否相等,全部相等为真,只要有一个不一致则位假
3)!= (不等于):判断两个变量的值是否不相等,不相等为真,否则为假。也可以写成”<>”这个也是不等于
4)!==(不全等于):判断两个变量的值和类型是否相等,去不相等为真,只要有一个一样为假;
5)<(小于):判断左边的变量的值是否小于右边的变量的值,小于为真,否则为假
6)>(大于):判断左边的变量的值是否大于右边的变量的值,大于为真,否则为假
7)<=(小于或等于):判断左边的变量的值是否小于或者等于右边的变量的值,小于或者等于为真,否则为假
8)>=(大于或等于):判断左边的变量的值是否大于或者等于右边的变量的值,大于或者等于为真,否则为假
5.逻辑运算符
概念:对表达式进行逻辑运算,运算出的结果是布尔类型的值(true,false);
要求:参与逻辑运算符的表达式的值是布尔类型的值,如果不是布尔类型的值会被自动转换为布尔类型的值,在参与运算;
1)逻辑与运算符(and 或者 &&):左右两边表达式的结果都为true的时候,运算结果为true;否则为false;
逻辑与 短路现象:只要有一个为false,那么结果就是false。
2)逻辑或运算符(or 或者 ||):左右两边表达式的结果只要有一个为true的时候,运算结果为true;否则为false;
逻辑或 短路现象:只要有一个为true,结果就是true
3)逻辑异或运算符(xor):左右两边的表达式的值不一样的时候结果为true,如果一样那么运算的结果就是false;
4)逻辑非运算符(!):将原来表达式的结果否定,原来是true,结果就是false
#### 6.位运算符
#### 7.其他运算符
1)? : (三元运算符):表达式1?表达式2:表达式3;—>表达式1为真,执行表达式2;否则执行表达式3;
2)“:可以把系统的命令放在里面执行;涉及到跨平台
$a = `ipconfig`;
echo $a;
3)@:屏蔽表达式可能发生的错误
4)=>
5)->
6)instanceof
8.运算符的优先级
优先级的概念:谁的优先级高就先算谁;
结合方向:规定了从哪个方向开始算的问题;
优先级归纳:
1)[无] 递增递减
**2)[右] 逻辑非 ! **
3)[左] 乘、除、取余
4)[左] 加、减、字符串连接符
5)[无] 包含大于号或者小于号的比较远算符
6)[无] 不包含大于号或者小于号的比较运算符
7)[左] 逻辑与 &&
8)[左] 逻辑或 ||
9)[左] ? :
10)[右] 赋值运算符
12)[左] 逻辑异或 xor
圆括号的作用:用圆括号可以将表达式里面的某一块看成一个整体
使用圆括号可以增强代码的可读性,哪怕不需要加括号的地方也可以加上括号以增可读性