【小白笔记】PHP学习之路 (5) --运算符

PHP中的运算符类型:

1.算术运算符

2.递增/递减运算符

3.比较运算符

4.逻辑运算符

5.位运算符

6.其他运算符

算术运算符:无非加减乘除,不多说。

递增/递减运算符:跟python一样,$a++、++$a、$a--、--$a。

比较运算符:>、<、>=、<=、<>、!=、==、!==、===。

逻辑运算符:&&and(逻辑且)||or(逻辑或)!not(逻辑非)、xor(逻辑异或,当左

右表达式有且仅有一个为真是是TRUE,其他情况均为假)

位运算符(位运算进行的运算都是对于补码的运算):

1:&     按位与    有一位为0即为0。左右两边的数,同位都为1返回1,否则返回0
2: |     按位或     有一位为1即为1。只有当同位都为0时返回0,否则返回1
3:^     按位异或      相同为假,不同为真。只有当同位不同时返回1,否则返回0
4:~     按位非(取反) 将位中的0变为1,1变为0
位移运算符:
5:<<    左移   将左边数的二进制左移右边数指定数量的位,右边空位补0
6:>>    右移   将左边数的二进制右移右边数指定数量的位,左边空位补0

示例:

<?php
	$a = 5;
	$b = 6;
	echo $a."  ".decbin($a)."<br/>";
	echo $b."  ".base_convert($b, 10, 2);
	echo "<br/>----------------------<br/>";
	echo "按位与: ",$a & $b,"  ", decbin($a&$b), "<br/>";
	echo "按位或: ",$a | $b,"  ", decbin($a|$b), "<br/>";
	echo "按位异或: ",$a ^ $b,"  ", decbin($a^$b), "<br/>";
	echo "按位非: ",~$a,"  ", decbin(~$a), "<br/>";
	echo "左移一位: ",$a << 1,"  ", decbin($a<<1), "<br/>";
	echo "右移一位: ",$a >> 1,"  ", decbin($a>>1), "<br/>";
?>

结果:

5  101
6  110
----------------------
按位与: 4  100
按位或: 7  111
按位异或: 3  11
按位非: -6  11111111111111111111111111111010
左移一位: 10  1010
右移一位: 2  10


连接运算符

     .  连接两个参数生成新的字符串
     .=  把右边的值追加到左边的变量

赋值运算符

     =  把右边值赋给左边变量

禁止显示警告信息

     @   函数、变量、常量前来禁止显示警告信息,不可以放在条件语句结构中。一般放在有返回值的地方

三元表达式

     表达式1?表达式2:表达式3  若表达式1成立则返回表达式2,反之返回表达式3

例:

	$str1 = "google chrome";
	$rm = "bbs.rainmeter.cn";
	$str2 = "<h1>".$str1.$rm."</h1>"."-----------<br/>"; //全部拼在一起就是结果
	echo $str2;
	echo $str1.=" addedplus";  //结果:google chrome addedplus
	echo '--------------------------------';
	$a = 1;
	$a .= 2;
	echo $a; //此处发生类型转换,结果当然是字符串12
	echo '--------------------------------';
	$file_name = "helo.txt"; //此处故意将hello.txt打错
	$file = @fopen($file_name, 'r'); //可以将warning信息屏蔽,但错误依然存在,开发阶段不建议这样做
	$content = fread($file, filesize($file_name));
	echo $content; //warning报错
	echo '--------------------------------';
	$t = 0;
	$msg = $t>0 ? 't大于0' : 't不大于0';
	$uname = isset($_GET['uname'])?$_GET['uname']:'未被定义';
	echo $uname;  //$uname之前未被定义,因此结果为字符串

运算符的短路

&&   ||   存在短路特性
&     |    不存在短路

<?php
	$a = 1;
	$a==1 || $c=100;
	echo $c;  //结果为空,因为执行到$a==1时为真,逻辑或必为真,因此直接忽略后面的语句
	$a==2 && $d=200;
	echo $d;  //结果同样为空,原因同上
	$a==2 & $e=300;
	echo $e;  //结果:300
	$a==1 | $f=400;
	echo $f;  //结果:400
?>

利用运算符的短路,可以简便地完成一些判断结构:

	$file = @fopen('hello.txt', 'r') or die('文件不存在,a.txt必须存在'); //@屏蔽错误消息

如果文件存在,就将其打开;如果不存在,就显示错误消息并终止脚本运行(这里的die函数作用是输出消息并终止脚本)。

简单例子:

<?php
	$user_arr = array('admin', 'tt', 'sina', 'bbs');
	$upwd_arr = array('admin'=>'123456', 'tt'=>'555', 'sina'=>'888','bbs'=>'999');
	$uname = isset($_POST['uname'])?$_POST['uname']:'';
	$upwd = isset($_POST['upwd'])?$_POST['upwd']:'';
	if(in_array($uname,$user_arr)){
		if($upwd == $upwd_arr[$uname]){
			echo '登录成功,现在转入后台操作页面……';
			$ok = true;
		}else{
			echo('密码错误');
		}
	}else{
		echo('用户名不存在');
	}
?>
<html>
	<head>
		<title>Login</title>
	</head>	
	<body>
<?php
	if($ok){
		echo "欢迎进入后台管理";
	}else{
?>
		<form action="" method="post">
			用户名:<input type="text" name="uname"><br/>
			密码:<input type="password" name="upwd"><br/>
			<input type="submit" value="登录">
		</form>
	<?php }?>
	</body>
</html>


以上均为个人理解,初学php,如果有不对的地方,欢迎大家指正!微笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值