PHP入门笔记汇总
表达式:任何有值的东西就是表达式
php可以解析双引号,不可以解析单引号,双引号中引用变量可以输出引用变量的值,但是单引号不可以
1.变量和变量的销毁
unset(变量名) //销毁变量 变量是严格区分大小写的,在php中使用$符来定义变量
$变量名=变量值
$name $NAME $Name是不同的变量字母或下划线开头后面接任何数量的字母下划线不可以使用数字开头中间不可用空格空白符unset():
<?php
$a='abcde';
unset($a); //销毁变量,这样就会echo为空或者报错变量不存在
echo $a;
?>
2.双变量解释
<?php
$abc='test'; //定义了一个变量$abc里面存了值test
$$abc='小白'; //分开看,$abc被赋值给test,然后$$abc也就是$test了
echo $abc.'<br>';
echo $$abc.'<br>';
echo $test;?>结果:
test
小白
小白
3.变量链接
<?php
$a=1000;
$b=&$a; //相当于链接起来$a和$b这样,操作其中任何一个,另一个都会被重新赋值
$b=20;
echo $a;
echo $b;?>结果为:
20
20
4.变量类型
<?php
$a=true;
var_dump($a);
echo $a.'<br>';
print($a);var_dump显示类型用于调试类型有true和false是bool类型(布尔)//var_dump用于调试,会输出详细信息,和变量类型
//echo和print用于输出变量的值,不显示类型?>具体类型有:
字符型(string),数字型(int),浮点数(float),布尔型(bool)########################################################字符型使用单引号,双引号或者定界符来包裹的
$a='zifuchuan1';
$b="zifuchuan2";
$c=<<<aaa
zifuchuan3
aaa;
其中定界符是用3个小于号然后aaa或者其他任意字符中间包裹的内容
<<<aaaxxxxxaaa 定界符+标识符开始+字符+标识符结束#################################################################定界符例子:
<?php
$a=1000;
$b=<<<aaa
woshizifuchuanya
aaa;
var_dump($b)?>结果:
string(16) "woshizifuchuanya"#############################################################定界符中包裹变量:<?php
$a=1000;
$b=<<<aaa
woshizifuc{$a}huanya
aaa;
var_dump($b)?>结果为;
string(20) "woshizifuc1000huanya"定义空变量
<?php
$a=null; //大小写都可以var_dump($a);
var_dump($b);
?>
结果:
NULL NULL
不定义变量值和等于null都会显示空###################################################################
类型转换
$a='zifuchuan';
$b=(int)$a; //这个类型转换和py不一样,要注意以下
var_dump($b);
echo $b
5.常量
常量是一个简单值的标示符,如其名称所暗示的,在我们php脚本中执行期间,一个常量一旦被定义,就不能改变或者取消定义,常量的作用域是全局,常量只能包含bool,int,float,string类型的数据
常量用于临时存储的容器,变量也是
定义和使用
自定义常量:
自定义常量区分大小写
define('常量名称',常量值) //常量名称需要用单引号双引号等来包裹起来,常量的值要是字符串也要用单引号双引号包裹起来define()函数来检查是否定义了某个变量示例:
<?php
define('my_name','我的名字');
echo my_name; //调用常量,看my_name的值?>
结果为:
我的名字规则:和变量一样,只能包含数字字母下划线,且要字母和下划线开头,不可以用数字开头
常量的名称通常是大写的,可以不大写,标准是大写的常量和变量区别:常量不需要用$符,只可以用define定义一旦定义不可以重新定义<?phpdefine('my_name','我的名字');define('my_name','新的名字');echo my_name; //调用常量,看my_name的值?>结果我的名字常量的值只可以是bool,int,float,string类型
预定义常量:
预定义常量就是php内核预先给我们定义好的,其中有的预定义常量是两个下划线开头的,我们又叫它为魔术常量,例如:__FILE__
查看php所有的预定义常量
<?php
print_r(get_defined_constants());
//个人感觉print_r和var_dump差不多,官方说var_dump用于调试,print_r显示人类可读的变量信息?>
结果: //太多了,所以就只复制了这些array(1666) {["E_ERROR"]=>int(1)["E_RECOVERABLE_ERROR"]=>int(4096)["E_WARNING"]=>int(2)["E_PARSE"]=>int(4)["E_NOTICE"]=>int(8)["E_STRICT"]=>int(2048)["E_DEPRECATED"]=>int(8192)["E_CORE_ERROR"]=>int(16)["E_CORE_WARNING"]=>int(32)["E_COMPILE_ERROR"]=>int(64)["E_COMPILE_WARNING"]=>int(128)["E_USER_ERROR"]=>int(256)["E_USER_WARNING"]=>int(512)["E_USER_NOTICE"]=>int(1024)["E_USER_DEPRECATED"]=>int(16384)["E_ALL"]=>int(32767)
常用的预定义常量
都定义常量不区分大小写的
__FILE__: //输出当前文件的位置
<?php
echo __FILE__;
print_r(__FILE__);
var_dump(__FILE__);
print(__FILE__);?>##################################################__LINE__: //当前文件中的行号
<?php
echo __LINE__; //输出当前__LINE__所在的行
?>####################################################
6.运算符
说白了就是一些符号,认识 php常用的一些符号,这些符号可以将变量或者数据,指定某种运算
运算符对一个或者多个操作数(变量或者数值)执行某种运算的符号,也称为操作符
举例:!true!是运算符,true是操作数$a+$b+是运算符,$a和$b是操作数true ? 1:0?和:是运算符,true,1,0是操作数
根据操作的个数分为:一元运算符,二元运算符,三元运算符一些情况下,两边加上空格会更美观
算数运算符
+-*/%都是算数运算符
+的例子:<?php$a=1;$b=2;$c=$a+$b;print($c);?>
结果为:
3
######################################、
-的例子:
<?php
$a=1;
$b=2;
$c=$a-$b;
print($c);?>
结果:
-1
########################################
取反:
<?php
$a=9;
echo -$a;
echo '<br>';
echo $a;
?>结果:
-9
9
注意:说明取反的并没有影响到它本身
#########################################
*的例子:
<?php
$a=9;
$b=3;
$c=$a*$b;
echo $c;
?>
结果为:
27
###########################################
/的例子:
<?php
$a=9;
$b=3;
$c=$a/$b;
echo $c;
?>
结果为:
3
###########################################
%的例子:
<?php
$a=9;
$b=3;
$c=$a%$b;
$d=$b%2;
echo $c;
echo '<br>';
echo $d;
?>
结果为:
0
1
可以计算是奇数还是偶数
###########################################
++的例子:
<?php
$a=10;
++$a;
echo $a;
?>
结果
11
前++和后++的区别前++ 前自增,不返回变量的值,直接自增
<?php
$a=10;
echo ++$a; //先返回$a,再a++,如同echo $a;echo $a++
echo '<br>';
echo $a;
?>
结果为:
11
11后++ 后自增,先返回变量的值,再自增
<?php
$a=10;
echo $a++; //先返回$a,再a++,如同echo $a;echo $a++
echo '<br>';
echo $a;
?>
结果为
10
11
#################################################
--的例子
<?php
$a=10;
$a--;//$a=$a-1
--$a;//$a=$a-1
echo $a;
?>前-- 前自减,直接自减
<?php
$a=10;
echo --$a; //先返回变量的值,然后自减,如同:echo $a; echo $a--
echo '<br>';
echo $a;
?>
结果为:
9
9后-- 后自减,先返回变量的值,然后再执行自减
<?php
$a=10;
echo $a--; //先返回变量的值,然后自减,如同:echo $a; echo $a--
echo '<br>';
echo $a;
?>
结果为:
10
9注意:不管是前++前--还是后++后--前后值都要是变量,不可以是4--或者4++或--4或++4
自增和自减是对于变量而言的
字符串运算符
字符串运算符只有一个就是.连接运算符
连接运算符为.<?php
$a='字符串1';
$b='测试连接';
echo $a.$b;?>
结果为;
字符串1测试连接
##########################
赋值运算符;
把右边的值,赋值给左边的变量
赋值运算符
二元运算符左边的操作数必须是变量,右边可以是一个表达式,也可以是一个值,一个变量等等作用:将右边表达式的值赋给左边变量=
+=
-=
*=
/+
%=
.=
###########################
示例1-
<?php
$a=1;
$b=2;
$a+=$b;//就是$a=$a=$b
echo $a;?>
结果为;
3
###########################
示例2-
<?php
$a=1;
$b=2;
$a-=$b;//就是$a=$a=$b
echo $a;?>
结果为;
-1
###########################
往后的上同
比较运算符
对操作数(按照比较 运算符的要求,规则)进行比较
如果比较出的结果满足比较运算符的要求那么结果就是true(真,成立,满足),否则就是false(假,不成立,不满足)
php的若比较:运算符==
运算符为==,比较值是否相等,相等为true,否则为false
这里使用echo x,x为真,为true的话就返回1了,否则返回为空
使用var_dump可以看到详细信息,用于调试
<?php
$a=1;
$b=1;
echo $a==$b; //输出1
echo '<br>';
print_r($a==$b);//这里也输出1
echo '<br>';
var_dump($a==$b);//这里输出类型?>
结果为:
1
1
bool(true)使用var_dump来输出bool更详细两个==是若比较
<?php
$a=1;
$b='1';
var_dump($a==$b);
?>
结果为:
bool(true)
这里一个是字符串一个是整数,比较结果为真,说明是弱比较,不比较类型若比较会将另一个类型转换为相同的类型,比较
var_dump((int)$b);//使用int转换来看一下,这个就是转换后的
结果为:
int(1) 若比较就是这么转换的
php的强比较:运算符===
===是强比较,值要想等,类型也要相等
<?php
$a=1;
$b='1';
$c=1;
var_dump($a===$b); //因为是强类型,所以返回为false。类型不等
echo '<br>';
var_dump($a=$c);//类型和值都相等,返回为true
?>结果为:
bool(false)
int(1)
不相等运算符:!=
如果两两边的操作数的值不相等那么就是true,相等为false
<?php
$a=1;
$b='1';
$c=2;
var_dump($a!=$b);
echo '<br>';
var_dump($a!=$c);?>
结果为:
bool(false)
bool(true)
也不比较类型
不等运算符:运算符<>
这个同上,一模一样
强比较不等于:!==
这个属于强类型比较不相等
<?php
$a=1;
$b='1';
$c=2;
var_dump($a!==$b); //强比较,类型不同, 返回为 true
echo '<br>';
var_dump($a!==$c);?>
结果为
bool(true)
bool(true)
其他运算符:<、>、<=、>=
这些比较简单,不做演示了
逻辑运算符
逻辑运算符用于执行布尔逻辑操作,它们在编程和数学中被用来组合或修改条件表达式的真假值。逻辑运算符通常用于构建更复杂的条件语句,以控制程序的流程。以下是三种基本的逻辑运算符
php中有值的都是表达式,对表达式尽心逻辑运算,运算结果无非就是true,false
要求:
参与运算符的表达式的值必须是bool类型的值,如果不是bool类型的值,会被转换为ibool类的值
逻辑与:&&或and
<?php
$a=true;
$b=true;
var_dump($a and $b);
echo '<br>';
var_dump($a && $b);
$c=false;
echo '<br>';
var_dump($a and $c);
?>结果为;
bool(true)
bool(true)
bool(false)逻辑与需要左右两边的表达式的值都为true的时候,运算结果就是true,否则只要其中任意一个为false,运算的结果为:false
变量类型简介:
以下类型为false,其他的值都是被认为是true
1.布尔值false
2.0
3.浮点型0.0
4.空白字符串和字符串0
5.没有成员的数组
6.NULL
逻辑或:or或者||
左右两边表达式的值有一个值为true,结果就是true
<?php
$a=false;
$b=true;
var_dump($a || $b);?>结果为:
bool(true)
逻辑异或:xor
左右两边的表达式的值不一样的时候,结果就是true, 否则为false
<?php
$a=false;
$b=true;
var_dump($a xor $b);
?>
结果为:
bool(true)<?php
$a='asdgasdfgasd'; //它的布尔类型为true
$b='tasdgasgar5213e'; //它的布尔类型为true
var_dump($a xor $b);
?>
结果为:
bool(false)两个值得布尔类型都是true,所以结果为false
逻辑非:!
将原来表达式得值否定掉,原来是true,转换为false
原来表达式为false,转换为true
<?php
$a=null; //这个为false
$b=false; //这个也是false
var_dump(!$a); //转换为了true
echo '<br>';
var_dump(!$b); //转换为了true
?>
结果为;
bool(true)
bool(true)
其他运算符
.三元运算符:
格式:表达式1 ? 表达式2 : 表达式3;
<?php
$a=true ? 10:20; //表达式1得值是true,所以返回表达式2,返回10,
echo $a;
?>
结果为:
10<?php
$a=false ? 10:20; //表达式1为false,所以表达式2的值为20
echo $a;
?>
结果为:
20
反引号:··
可以把系统的命令放在里面执行,
<?php
$a=`dir`; //执行了windows的命令,执行linux命令也可以
echo $a;?>结果如下:������ D �еľ��� �������������к��� D8CC-AA56D:\phpstudy_pro\WWW ��Ŀ¼2024/12/31 20:23 <DIR> .
2024/11/04 16:40 <DIR> ..
2024/12/01 19:58 24,614 hacker1.png
2024/12/31 20:10 <DIR> heart-1
2024/12/31 20:11 <DIR> heart-2
2024/12/31 14:35 246 index.html
2025/01/02 14:57 38 index.php
2024/12/31 20:22 13,072 ruyi.html
2024/12/18 18:30 <DIR> upload
2024/12/31 19:40 <DIR> xy4 ���ļ� 37,970 �ֽ�6 ��Ŀ¼ 223,594,254,336 �����ֽ�
屏蔽错误符号:@
抑制错误信息提示
<?php
echo @$a;?>结果为:
空白
运算符的优先级:
概念:通过优先级来定义先算哪个运算
左代表从左往右算,右代表从右往左算1.[无]递增递减
2.[右]逻辑非
3.[左]乘,除,取余
4.[左]加,减,字符串
5.[无]包含大于号小于号的运算符
6.[无]不包含大于号或小于号的