PHP学习记录之运算符

Posted 天青色wy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP学习记录之运算符相关的知识,希望对你有一定的参考价值。

<?php

// 算术运算符
// + - * / % 


// 连接运算符 .
// 将点号前后的字符串连接起来,如果不是字符串,会自动转换为字符串。
// 。号两边有数字的话,要加空格将数字和.隔开;

echo \'ab\'.\'cd\'; //abcd
echo 123 .\'cd\'; //123cd
echo 123 . 456; ///123456
echo 123 . true; // ‘1231’,true转为字符串,为‘1’
echo \'123\'.false; // ‘123’,false转为字符串,为“”,空字符串

 

//自赋值运算符
//针对数字的:+= -= *= /= %=
// 针对字符串的: 。=
$a = 1;
$a += 1;
echo $a; //2

$b = \'abc\';
$b .= \'hhh\';
echo $b; //abchhh

 

// 自增或自减运算符
echo \'<br>\';
$a1 = 1;
$a2 = 1;

echo $a1++, $a1; // 12,先取值1,再将原来a1加1变为2;再输出
echo ++$a2, $a2;// 22,先将原来a1加1变为2,再取值2;再输出


//比较运算
// 等于== :两个数据基本相等,类型可能发生转换,就算是相等,这是一种模糊相等
// 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对。
echo 1==true; //1
echo 1==\'1\'; //1
echo false==0; //1
echo 1.0==1; //1
//全等于=== :数据类型和值都一样,才是全等。
echo 1===1; //1
// 不全等与!==
echo 1!==\'1\'; //1
var_dump (\'\'==0); //bool(true). ""==0==false==null
var_dump (\'abc\'<\'b\'); //bool(true)
var_dump (false<2); //bool(true) ,有bool值,则其他数据也会转为bool值后进行比较
var_dump (null<\'abc\'); //bool(true),将null转为"",进行数字或者词汇比较
var_dump (\'1\'<\'a\'); //bool(ture)
var_dump ([]>1); //bool(ture)
var_dump ([]>\'1\'); //bool(true)
var_dump ([]<true); //bool(true)
var_dump ([1]==true); //bool(true)
var_dump ([]==false); //bool(true)
var_dump ([]==null); //bool(true)

 

// 三元运算符
// 表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

// 简化形式表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

echo 1?2:3?4:5; // 4
echo 1?:2; // 1 ,这是简化写法

 

// 逻辑运算符
// && || ! and or
var_dump (false && func()); //bool(false)
var_dump (true || func()); //bool(true)
//上面的func()不会被调用,被短路了


$a = 16;//判断给定的数是否能被3和5整除
if ($a%3==0 && $a%5==0) {
echo "yes";
}else{
echo "no";
}

//逻辑非
if (!isset($a)) { //如果$a为真空null,就执行代码
# code...
}

if (empty($a)) { //如果$a为空empty,如“”,0,0.0,‘0’,false,[]就执行代码,注意与上面的区别
# code...
}

/


// 位运算符
// 位运算符允许对二进制数指定的位进行求值和操作,整数之间的按位与先要转换为二进制数。
// $a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。
// $a | $b Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。
// $a ^ $b Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
// ~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。
// 要用括号确保想要的优先级。例如 $a & $b == true 先进行比较再进行按位与;而 ($a & $b) == true 则先进行按位与再进行比较。

//错误抑制符@
// 在一个表达式出现错误的时候,可以将错误隐藏起来不输出,但错误依然存在。应用于某些不能控制的错误出现时。不让错误信息出现在用户使用的过程中。

 

if (@mysqli_connect(\'localhost\',\'root\',\'123\')) {
echo "连接成功";
}else{
echo "连接失败";
}

 //未加@前:

 

 

//加了@之后:

 

//运算符的优先级

/*

1、括号优先;
2、先乘除取余后加减;
3、赋值通常在最后;
4、大致为:算术>比较>逻辑;

*/

?>

 

练习:给定一个整数表示年份,判断该年份是否是闰年。

  
经过多次修改,终于达到了我的预期结果。

 

 

 

 

要求:

第一次访问时显示:

 

访问后直接点判断显示:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于PHP学习记录之运算符的主要内容,如果未能解决你的问题,请参考以下文章

opencv学习记录之图像运算

PHP学习记录之函数

前端小白之每天学习记录----php面向对象

前端小白之每天学习记录----php数据库操作软件

前端小白之每天学习记录----phpsession与cookie

PHP入门之类型与运算符