基础篇
<?php
$v1=1;
$result=isset($v1);//isset()函数判断一个值是否为空
echo $result;
echo "<br>";
var_dump($result);//也是输出可以输出一个变量的完整信息
$result2=isset($v3);
echo "<br>v3的结果为:";
var_dump($result);
unset($v1);//unset()函数销毁变量
$result3=isset($v1);
echo "<br>v1被unset()之后为";
var_dump($result3);
echo $v1;
?>
结果:
1<br>bool(true)
<br>v3的结果为:bool(true)
<br>v1被unset()之后为bool(false)
PHP Notice: Undefined variable: v1 in D:\javascript\p.php on line 15
-
值传递和引用传递
1.值传递
<?php $v1=10; $v2=$v1; $v1=20; echo $v1; echo "<br>"; echo $v2; ?>
结果:
20 10
2.引用传递 &
传递的是内存地址,也就是两赋值那个变量也指向了同一个内存
<?php $v1=10; $v2=&$v1; $v1=20; echo $v1; echo "<br>"; echo $v2; ?>
结果:
20 20
-
$_SERVER变量
它代表一次请求中,客户端或服务端的一些"基本信息"或系统信息,包括很多
常用的有
1.PHP_SELF : 表示当前请求的网页地址(不包含域名部分)
2.SERVER_NAME : 表示当前请求的服务器名
3.SERVER_ADDR : 表示当前请求的服务器IP地址
4.DOCUMENT_ROOT : 表示当前请求的网站物理路劲
5.REMOTE_ADDR : 表示当前请求的客服端的IP地址
6.SCRIPT_NAME : 表示当前网页地址
-
常量
1.define(‘常量名’,‘常量值’)
<?php define('P1',3.14); echo P1; ?>
2.const 常量名=常量值
<?php const P1=3.14; echo P1;//或者constant('P1') ?>
3.判断常量是否存在
defined("常量名");
-
预定义变量
预定义变量就是PHP语言内部预先定义好的变量,我们可以直接使用
PHP_VERSION 表示当前PHP的版本信息
PHP_OS 表示当前PHP运行所在的系统信息
PHP_INT_MAX 表示当前版本PHP中的最大的整数值
M_PI 表示圆周率Π
-
几个魔术常量
魔术常量也是常量,只是在形式上为常量,而其值是’‘变化’'的
_ DIR _ 代表当前PHP网页文件所在的 文件名
_ FILE _ 代表当前PHP网页本身的路径
_ LINE _ 代表当前这个常量所在的行号
-
进制的转换
1.decbin() 将10进制数转为2进制
2.decoct() 将10进制数转为8进制
3.dechex() 将10进制数转为16进制
或将2,8,16进制转为10进制
1.bindec() 将2进制数转为10进制
2.octdec() 将8进制数转为10进制
3.hexdec() 将16进制数转为10进制
-
标量类型
-
布尔类型
只有两个数值,true,false(不区分大小写)
在需要当做"布尔值"进行判断或比较的时候,以下数据会被当作布尔值的false
false,0,0.0,"",'0‘,空数组
-
数组类型
数组就是将多个"数据"放在一起,排成一个有序序列,这个序列做为一个整体(里面包括了多个数据),就称为数组
有下标:
<?php $array=array('zhang' => 123,'wei' => 134); echo $array['zhang']; echo '<br>'; echo $array['wei']; echo '<br>'; print_r($array)//输出该数组 ?>
无下标:
<?php $array=array('zhang','wei'); echo $array[0]; echo '<br>'; echo $array[1]; ?>
-
字符串
用单引号或双引号引起来的
注意:双引号字符串中,如果出现"$"符号,则该符号后的连续字符串(单词)会被识别为一个变量名,如果识别成功(即确实存在该变量),则会将该变量转换为实际内容。如果识别失败(即实际没有该变量),则会报错
<?php $str1=1234343; echo "hahah { $str1}1"; echo "hahha$str11";//报错 echo "\$str1adfdfa: $str1"; ?>
单引号:
只能使用两个转义符 \ \ (代表一个反斜线),\ '(代表一个单引号)
双引号:
能使用较为丰富的转义符,包括: \ ,", \n,\r,\t,$等
heredoc字符串
形式:$s1=<<<“标识符”
内容
标识符;
<?php $str=<<<"a" ahafalf安抚杰拉德解放了 发动发动反击了 啊打发浪 echo "<input type="text" ></input>" a; echo $str; ?>
nowdoc字符串
形式:$s=<<<‘标识符’
内容
标识符;
字符串长度:
1.字符个数
strlen()
2.字节个数
mb_strlen()
-
-
类型判断
-
gettype()
获取一个变量的类型,结果为一个变量类型的名称(字符串)
<?php $x = 10.365; echo gettype($x); ?>
-
settype()
设置一个变量的类型
<?php $x = 10.365; echo settype($x,'string'); echo gettype($x);//string ?>
-
is_int()
判段是否为整数类型
-
is_float()
判断是否为浮点类型
-
is_bool()
判断是否为布尔类型
-
is_string()
判断是否为字符串
-
is_numeric()
判断是否为数字类型(含整数,小数以及纯数字字符串)
-
is_object()
判断变量是否为一个对象
-
-
两个特殊判断
-
数据类型转换
-
运算
-
算术运算符
+,-,*,/,%
-
连接运算符(.)
-
自操作
–,++
<?php $v=10; $v1=10; $s= ++$v; $s1= $v1++; echo $s;//11 echo $s1;//10 ?>
也前++先自加在取值,后++先取值后自家加
-
自赋值运算符
针对数字+=,-=,*=,/=,%=
针对字符串 .=
-
比较运算
针对数字的大小进行比较的运算
如果不是数字,会自动转换为数字
包括:>,>=,<,<=,==,! = , = = =,! = =
所有比较运算符:运算的结果只有两个可能:true或false
等于(==):模糊
全等于( = = =):严格比较数据类型一样
-
逻辑运算符
1.逻辑与 &&
只有两个条件都为真的时候,结果才是真(true)
2.逻辑或 ||
只要有任意条件为真,结果就是真
3.逻辑非 !
就是对一个布尔值进行"取反"操作
! true 结果为:false
! false 结果为: true
-
-
错误抑制符 @
在一个表达式出现错误的时候,可能将错误"隐藏"掩盖起来不输出。
通常,该符号用于实际运行环境中的一些条件非我们(程序员)能控制的情形。如果出现该情形并没有报错,则我们可以抑制该错误的显示(只是该错误不显示,不是没有错误了)
-
条件运算符
只有一个条件运算符,形式为:
表达式1 ? 表达式2 : 表达式3
<?php $v=10; $v1=20; $v2 = $v1 / $v ? "1" : "2"; echo $v2; //1 ?>
-
if分支结构
-
switch分支
switch (表达式或变量) { case 值1: 分支语句1; break; case 值2: 分支语句2; break; ....... default: 默认分支; }
-
while循环语句
<?php $v=10; echo $v; while($v) { echo "ha"; $v--; } ?>
do --while是不管条件满不满足先执行一次
循环可以嵌套