前面我们打过比方:一个程序可以当作一篇文章,文章有语句组成,语句由字和词组成,字和词在程序中就是变量,变量用运算符连接起来就是语句。
一、运算符定义:
用于运算的符号,作用就是可以把变量连接成语句。
按照数据类型
二、运算符可以分类为:
1、数值类型
1、)数学运算符:+、 -、 *、 /、 %(取余数)、 ++、 –、 +=、-=、*=、/=、%=
示例源码
<?php
/*
$shuXue1=1;
$shuXue1++;或者++$shuXue1;都等同于 $shuXue1=$shuXue1+1;
//++$shuXue1;
$shuXue1++;
echo $shuXue1;
*/
$math1=1;
//echo ++$math1;//先加1再输出
echo $math1++;//先输出再加1
echo $math1;
$math2=2;
echo $math2+=3;//等同于$math2=$math2+3;
?>
2、 字符串
2)字符运算符:只有一个 . 意思是连接,即把后面想字符串连接到前面的字符串。
<?php
$string1=”abc”;
$string2=”def”;
$mulString=$string1.$string2;
echo $mulString;
?>
3、 布尔 运算符: !(非,取反) &&(and,逻辑和) ||(or,逻辑或者)
<?php
$ boolean =false;
echo !$boolean;
echo “<br>”;
/*
&& and和,用于布尔类型运算只要有一个假结果就是假,否则为真
*/
echo true && true && true && true;
echo “<br>”;
echo true && false && true && true;
echo “<br>”;
/*
|| or或者,用于布尔类型运算只要一个真结果就为真,否则为假
*/
echo true || true || true || true;
echo “<br>”;
echo true || false || true || true;
?>
另外,&位和,|位或 运算的结果是一样的,但是和逻辑和、或运算相比,速度太慢,建议不用。
4、比较运算符: >、 <、 >=(大于等于)、 <=(小于等于)、 ==(比较值是否相等)、 !=(不等于)
<?php
//比较值是否相等
echo 1==2;
echo “<br>”;
echo 1!=2;
?>
5、元(目)运算符:按照 操作数 (变量)个数来分类。
一元运算符:!、++、–
二元运算符:通常用的都是二元运算符,例如+、-、*、/
三元运算符:?:
<?php
$temp1=5;
$temp2=2;
$max=$temp1>$temp2?$temp1:$temp2;
echo $max;
?>
6、类型转换:
不同数据类型之前默认是不能进行运算,如果非要运算要么出错,要么结果不可预料。
自动类型转换 (隐式):不需要你去关系程序会自动执行,小范围值的变量和大范围值的变量进行运算,先把小范围转化为大范围再运算, 结果是大范围 。
强制类型转换 :小范围的值的变量非要和小范围运算, 结果为小范围 。
<?php
$temp1=5;
echo “++$temp1”;
echo “<br>”;
//echo 2.”abc”;
//echo 1+2.”abc”;
echo “2”.”abc<br>”;
echo (2).”abc<br>”;//自动类型转换
echo (1+2).”abc<br>”;
echo (1+2.2).”<br>”;
echo (3+( integer )4.4).”<br>”;//强制类型转换
echo (integer)(3+4.4);//既有自动类型转换又有强制类型转换
echo “<br>”;
echo 1+”2″;
echo “<br>”;
echo 1+”2aaaa”;
echo “<br>”;
echo 1+”aaa2aaa”;
?>
7、 运算符优先级 :
多个运算符之间进行运算,哪个先运算那个后运算;布尔类型和数字进行运算,非0的数字为true,0为false;字符串非空为true,空为false。
<?php
/*
echo 1+2*3;
echo “<br>”;
echo (1+2)*3;
echo “<br>”;
echo true && 1+2*3 || 4-5 || 7-6/2 && null && (8+9)-20
|| “” && ” || 1+2>3 && 4+5==9;
echo true && 1+2*3 || 4-5 || 7-6/2 && null && 17-20
|| “” && ” || 1+2>3 && 4+5==9;
echo true && 1+6 || 4-5 || 7-6/2 && null && 17-20
|| “” && ” || 1+2>3 && 4+5==9;
echo true && 1+6 || 4-5 || 7-3 && null && 17-20
|| “” && ” || 1+2>3 && 4+5==9;
echo true && 7 || 4-5 || 7-3 && null && 17-20
|| “” && ” || 3>3 && 9==9;
echo true && 7 || -1 || 4 && null && -3
|| “” && ” || 3>3 && 9==9;
echo true && 7 || -1 || 4 && null && -3
|| “” && ” || false && 9==9;
echo true && 7 || -1 || 4 && null && -3
|| “” && ” || false && true;
*/
echo true || -1 || false
|| false || false;
?>
TIPS: 建议多用小括号 !!!
三、表达式:
由操作数和运算符组成的式子。语句去掉分号就是表达式,甚至可以是一个变量。作用用于流程控制,详见下一章。