- PHP运算符一般分为
算术运算符
、赋值运算符
、比较运算符
、三元运算符
、逻辑运算符
、字符串连接运算符
、错误控制运算符
。 - “&”:
引用赋值
,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
<?php
$a = "h1";
$b = &$a; // 变量b引用a,共享一块内存
$b = "h2"; // 重新赋值,相当于修改了变量a的值
echo $a;
// h2
比较运算符
<?php
$a = 1;
$b = "1";
var_dump($a == $b); // bool(true)
echo "<br />";
var_dump($a === $b); // 全等运算符,bool(false)
echo "<br />";
var_dump($a != $b); // bool(false)
echo "<br />";
var_dump($a <> $b); // bool(false)
echo "<br />";
var_dump($a !== $b); // 非全等运算符,bool(true)
echo "<br />";
var_dump($a < $b); // bool(false)
echo "<br />";
-
(“?:”)
三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。
- 字符串连接运算符:
- (1)连接运算符
(“.”)
:它返回将右参数
附加到左参数后面所得的字符串。(2)连接赋值运算符(“.=”)
:它将右边参数附加到左边的参数后。
<?php
$c = "张 loves ";
$c .= " 李";
echo $c;
// 张 loves 李
- 错误控制运算符
@
,将@
放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;如果激活了track_error
(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg
中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。 - 需要注意的是:错误控制前缀“@”不会
屏蔽解析错误的信息
,不能把它放在函数
或类的定义
之前,也不能用于条件结构
例如if和foreach等。
<?php
$conn = @mysql_connect("localhost","username","password");
echo "出错了,错误原因是:".$php_errormsg;
?>
- 循环结构之
foreach
循环语句:一般有两种使用方式:不取下标
、取下标
。
// 模板
<?php
// 只取值,不取下标
foreach (数组 as 值){
//执行的任务
}
//同时取下标和值
foreach (数组 as 下标 => 值){
//执行的任务
}
?>
- 测试:
<?php
$students = array(
'2010' => '令狐冲',
'2011' => '林平之',
'2012' => '曲洋',
'2013' => '任盈盈',
'2014' => '向问天',
'2015' => '任我行',
'2016' => '冲虚',
'2017' => '方正',
'2018' => '岳不群',
'2019' => '宁中则',
);//10个学生的学号和姓名,用数组存储
//使用循环结构遍历数组,获取学号和姓名
foreach ($students as $index => $v) {
echo "下标为:";
echo $index;
echo ",对应的值为:";
echo $v;//输出(打印)姓名
echo "<br />";
}
echo "<hr />";
foreach ($students as $v) {
echo $v; // 打印值
echo "<br />";
}
- php中结构嵌套之循环嵌套(相当于二维数组)
<?php
$students = array(
'2010'=>array('令狐冲',"59"),
'2011'=>array('林平之',"44"),
'2012'=>array('曲洋',"89"),
'2013'=>array('任盈盈',"92"),
'2014'=>array('向问天',"93"),
'2015'=>array('任我行',"87"),
'2016'=>array('冲虚',"58"),
'2017'=>array('方正',"74"),
'2018'=>array('岳不群',"91"),
'2019'=>array('宁中则',"90"),
);//10个学生的学号、姓名、分数,用数组存储
foreach($students as $key => $val){ //使用循环结构遍历数组,获取学号
echo $key.":"; //输出学号
// echo ":";
//循环输出姓名和分数
foreach($val as $v){
echo $v." ";
}
echo "<br />";
}
//2010:令狐冲 59
//2011:林平之 44
//2012:曲洋 89
//2013:任盈盈 92
//2014:向问天 93
//2015:任我行 87
//2016:冲虚 58
//2017:方正 74
//2018:岳不群 91
//2019:宁中则 90
- for循环
<?php
for(初始化;循环条件;递增项){
//执行任务
}
?>
- 字符串:
双引号解析变量
,但是单引号不解析变量
。 -
单引号效率高于双引号
,尽可能使用单引号
。 - 如果在双引号里面插变量的时候,后面不想有空格(或特殊字符),可以拿
大括号
将变量包起来。 -
双引号解析转义字符
,单引号不解析转义字符
。但,单引号
能解析\'
和\
。
<?php
// 双引号执行转义字符而单引号不执行转义字符。
$str1 = "学PHP\n给梦想\t一个机会";
echo $str1 . '<br />'; // 学PHP 给梦想 一个机会
$str2 = '学PHP\n给梦想\t一个机会';
echo $str2 . '<br />'; // 学PHP\n给梦想\t一个机会
// 使用反斜杠转义字符给双引号中添加双引号
$str3 = "他说:\"你好!\"";
echo $str3 . '<br />'; // 他说:"你好!"
// 使用反斜杠转义字符给单引号中添加单引号
$str4 = 'i\'m small ming';
echo $str4; // i'm small ming
- 双号和单引号可以互插!!!
双引号当中插入单引号,单引号当中插入变量,这个变量会被解析
。
<?php
// 双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。
$legend = '猛虎';
$NoAlike = "心有'$legend',细嗅蔷薇";
echo $NoAlike; // 心有'猛虎',细嗅蔷薇
- 在双引号里面
插入变量
,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。一定要在变量后面接上特殊字符
,例如空格
等分开。 -
var_dump()
是一个函数。向括号()中间插入变量
。这个函数,会打印出来数据类型
,还会对应显示变量的长度
和值
。 - 空在英文里面表示是null,它是代表没有。空(null)不是false,不是0,也不是空格。
-
empty()
可以向括号中间传入一个变量
。这个变量的值如果为false
或者为null
的话,则返回true
。 - 使用函数
unset()
将变量销毁掉
。
<?php
$iphone = '手机';
// unset函数销毁掉一个变量
unset($iphone);
var_dump($iphone); // NULL
//empty函数判断是否变量值是否为false或者为NULL,有则返回true
if(empty($iphone)) {
echo '不能买苹果手机!';
} else {
echo "可以买苹果手机啦!";
}
-
isset()
函数:可以向括号中间传入一个
或者多个
变量,变量与变量间用逗号
分开。只要有一个变量为null,就返回false,否则返回true。 -
gettype(传入一个变量)
能够获得变量的类型。
使用is_* 系列函数。 is_types这一系列的函数,来进行判断某个东西是不是某个类型。
is_int 是否为整型
is_bool 是否为布尔
is_float 是否是浮点
is_string 是否是字符串
is_array 是否是数组
is_object 是否是对象
is_null 是否为空
is_resource 是否为资源
is_scalar 是否为标量
is_numeric 是否为数值类型
is_callable 是否为函数
- 强制类型转换有三种方式:
1、用这三个函数可以完成类型转换:intval()
、floatval()
、strval()
;
2、变量前加上()里面写上类型
,将它转换后赋值给其他变量;
3、settype(变量,类型) 直接改变变量本身的类型。
1.空转为整型会为整型的0
2.空转为浮点会为浮点的0
3.空转为字符串会为空字符串''
4.浮点的123.0转为字符串会为字符串123
5.浮点的123.2转为字符串会为字符串的123.2
6.浮点即使小数点再大,它都会被干掉,会舍掉小数点后面的值
7.如果字符串转为整型的时候,如果数值在前面,会将前面的数值拿出来做为整型的转换值。
8.settype(变量,'null'); 等价于 unset()一个变量
9.$目标变量 = (类型)$操作变量 只会改变目标变量的类型,不会改变原变量的类型(而是拷贝一份),settype是改变原来的类型!
1.常量名可以小写
,但是通常大写
。
2.常量名可以不加引号
,但是通常加上引号
。
3.在字符串中调用常量的时候,必须在引号外面
。
4.常量名建议只用字母
和下划线
。
常量名 | 说明 |
---|---|
LINE | 当前所在的行 |
FILE | 当前文件在服务器的路径 |
FUNCTIOIN | 当前函数名 |
CLASS | 当前类名 |
METHOD | 当前成员方法名 |
PHP_OS | PHP运行的操作系统 |
PHP_VERSION | 当前PHP的版本 |
TRAIT | Trait 的名字,php5.4新加 |
DIR | 文件所在的目录 |
NAMESPACE | 当前命名空间的名称(区分大小写) |
-
defined()函数
来做安全机制。 -
include('传入文件路径和文件名')
,功能:传入指定路径的文件,让PHP包含进来执行。 -
可变变量
(变量的变量):已声明的变量
前再上变量符
。
<?php
$shu = 'biao';
$biao = '鼠标';
echo $$shu; // 鼠标
php函数
function 函数名(参数列表) {
函数体
返回值
}
// 有效的函数名以字母或下划线打头,后面跟字母,数字或下划线。
网友评论