0 输出语句

1
2
3
4
5
6
7
8
echo:输出
print:输出,输出成功返回1
print_r():输出数组
var_dump():输出数据的详细信息,带有数据类型和数据长度

<?php
var_dump('abc'); //string(3) "abc"
?>

1 变量

1.1 变量的命名规则

  1. 变量必须以$开头,$符不是变量的一部分,仅表示后面的标识符是变量名。
  2. 除了$以外,以字母、下划线开头,后面跟着数字、字母、下划线
  3. 变量名区分大小写,$aa和$Aa是两个空间

1.2 可变变量

变量名可以变,将变量名存储在另外一个变量中

1
2
3
4
<?php
$a=10;
$b='a';
echo $$b; //10

1.3 变量传递

变量的传递有值传递和地址传递(引用传递)

1
2
3
4
5
6
<?php
//值传递
$num1=10; //将10付给$num1
$num2=$num1; //将$num1的值付给$num2
$num2=20; //更改$num2
echo $num1; //10

1.4 销毁变量

用unset()来销毁变量,销毁的是变量名,变量值由PHP垃圾回收机制销毁

1
2
3
4
5
<?php
$num1=10;
$num2=&$num1;
unset($num1); //销毁的是变量名
echo $num2; //10

2 常量

2.1 定义常量

1、用define()函数定义常量

1
define(常量名,值,[是否区别大小写])  true表示不区分大小写,默认是false

2、还可以使用const关键字定义常量

1
2
const NAME='tom';
echo NAME; //tom

定义常量有两种方式,define()和const

常量在整个运行过程中值保持不变,常量不能重新定义

使用constant获取特殊字符做的常量名的值

defined()用来判断常量是否被定义

2.2 预定义常量

1
2
3
echo PHP_VERSION,'<br>';		//PHP版本号
echo PHP_OS,'<br>'; //PHP操作系统
echo PHP_INT_MAX,'<br>'; //PHP中整型的最大值

2.3 魔术常量

魔术常量它们的值随着它们在代码中的位置改变而改变

1
2
3
echo __LINE__,'<br>';		//获取当前行号
echo __FILE__,'<br>'; //文件的完整路径和文件名
echo __DIR__,'<br>'; //文件所在的目录

3 数据类型

3.1 基本类型(标量类型)

3.1.1 整型

存整数,PHP_INT_MAX获取整形最大值

机制 缩写 单词
十进制 dec decimalist
二进制 bin binary
八进制 oct octonary
十六进制 hex hexdecimalist

3.1.2 浮点型

浮点数在内存中保存的是近似值

浮点数不能参与比较

1
2
3
var_dump(0.9==(1-0.1));		//bool(true) 
echo '<br>';
var_dump(0.1==(1-0.9)); //bool(false)

如果浮点数要比较,必须确定比较的位数

1
2
3
4
5
var_dump(0.9==(1-0.1));		//bool(true) 
echo '<br>';
var_dump(0.1==(1-0.9)); //bool(false)
echo '<br>';
var_dump(bccomp(0.1,1-0.9,5)); //比较小数点后面5位 int(0) 0表示相等

💡 提醒:如果一个整数超出了整形的范围,会自动的转成浮点型

3.1.3 布尔型

不能使用echo 和print输出布尔型,要使用var_dump()输出

1
2
3
$name='tom';
echo '我的名字叫$name','<br>'; //我的名字叫$name
echo "我的名字叫$name",'<br>'; //我的名字叫tom

3.1.4 字符串型

在PHP中单引号字符串和双引号字符串是有区别的

单引号字符串是真正的字符串

双引号字符串要解析字符串中的变量

1
2
3
$name='tom';
echo '我的名字叫$name','<br>'; //我的名字叫$name
echo "我的名字叫$name",'<br>'; //我的名字叫tom

3.2 复合类型

3.2.1 数组

在PHP中数组有两种形式,索引数组和关联数组

索引数组:用整数做下标,默认从0开始,后面依次加一

关联数组:用字符串做下标,通过=>符号将下标和值关联起来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//1、索引数组的声明
$stu=array('tom','berry','ketty'); //索引数组
print_r($stu); //输出数组 Array ( [0] => tom [1] => berry [2] => ketty )
echo '<hr>';
echo $stu[0],'<br>'; //tom
echo $stu[1],'<br>'; //berry
echo $stu[2],'<hr>'; //ketty
------------------------------------------
//2、关联数组
$emp=array('name'=>'李白','sex'=>'男','age'=>22);
print_r($emp); //Array ( [name] => 李白 [sex] => 男 [age] => 22 )
echo '<hr>';
echo $emp['name'],'<br>'; //李白
echo $emp['sex'],'<br>'; //男
echo $emp['age']; //22

二维数组的声明

1
2
3
4
5
$stu=[
['name'=>'tom','sex'=>'男','age'=>22],
['name'=>'berry','sex'=>'女','age'=>23]
];
echo '<pre>';

短数组语法,可以直接通过中括号声明数组

1
2
$stu=['tom','berry','ketty'];
print_r($stu); //Array ( [0] => tom [1] => berry [2] => ketty )

3.2.2 对象

3.3 特殊类型

1、资源

2、null

3.4 类型转换

1、自动类型转换:当提供的类型和需要的类型不一致的时候会自动进行类型转换

1
2
3
4
5
6
7
8
$num=10;
if($num){ //自动将数字转成布尔型
echo 'aa';
}else{
echo 'bb';
}
---------------------------------
echo '20'-10; //自动的将字符串转成数字

2、强制类型转换

语法:(数据类型)数据

其他类型和布尔之间的转换

规则:0、空为假,非0非空为真

1
2
3
4
5
<?php
var_dump((bool)'abc'); echo '<br>'; //bool(true)
var_dump((bool)''); echo '<br>'; //bool(false)
var_dump((bool)'0'); echo '<br>'; //bool(false)
?>

4 运算符

4.1 算术运算符

一元运算符 二元运算符
++ +
-
*
/
% (取模)

4.2 关系运算符(比较运算符)

1
2
3
4
5
6
7
=
<
<=
== //弱类型比较 不对数据类型作比较 '1'=1 true
!=
===//强类型比较 对数据类型和值都进行比较 '1'=1 false
!==

4.3 逻辑运算符

1
2
3
4
5
6
&	与:运算符两边的表达式都要计算
| 或:运算符两边的表达式都要计算

&& 短路与:如果前面的条件不满足,后面的条件就不用计算了
|| 短路或
! 非

4.4 赋值运算符

1
2
3
4
5
6
=	//赋值
+= //a+=b a=a+b
-=
*=
/=
%=

4.5 字符串连接符(.)

4.6 错误抑制符(@)

错误抑制符只对表达式有效

1
2
<?php
echo @($aa+$bb); //错误抑制

4.7 三元运算符(?:)

表达式1 ? 值1 : 值2

4.8 null合并运算符(??)

PHP7.0以后才支持

例题

1
2
<?php
echo $name??'姓名不详'; //姓名不详

多学一招:两个用来判断的函数

1
2
isset():判断变量是否被设置,并且设置的不是null
empty():检查一个变量是否为空,能转成false全部是空,['',0,0.0,array(),null]

例题

5 判断

5.1 语法

1、if语句

2、ifelse语句

3、switch case语句

6 循环

1、for

1
2
3
for(初始值;条件;增量){
//循环体
}

2、while&do-while

1
2
3
4
5
6
while(条件){
}
-------------------------
do{

}while(条件)

3、foreach

1
2
3
4
5
6
//语法一
foreach(数组 as 值){
}
//语法二
foreach(数组 as 键=>值){
}

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$stu=['tom','berry','ketty'];
foreach($stu as $v){
echo $v,'<br>';
}
/**
tom
berry
ketty
*/
echo '<hr>';
-----------------------------------------------------------
foreach($stu as $k=>$v){
echo "{$k}:{$v}<br>";
}
/**
0:tom
1:berry
2:ketty
*/
?>

小结:

  • for、while、do-while可以相互替换
  • 如果明确知道循环多少次首先for循环,如要要循环到条件不成立为止选while或do-while
  • 先判断再执行选while,先执行再判断选do-while
  • while循环条件不成立就不执行,do-while至少执行一次

7 跳转语句

1
2
3
break:中断循环

continue:中断当前循环,进入下一个循环

8 函数

8.1 函数定义

1
2
3
function 函数名(参数1,参数2,...){
//函数体
}

小结:

1、变量名区分大小写

2、关键字、函数名不区分大小写

8.2 可变函数

1
2
3
4
5
6
<?php
function show($args) {
echo $args,'<br>';
}
$str='show'; //将函数名保存到变量中
$str('锄禾日当午');

8.3 匿名函数

匿名函数就是没有名字的函数

1
2
3
4
5
6
7
<?php
//匿名函数
$fun=function(){
echo '锄禾日当午<br>';
};
//匿名函数调用
$fun();

本站由 RuntimeBroker 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本"页面"访问 次 | 👀总访问 次 | 总访客