符号 | 示例 | 描述 |
---|---|---|
+ |
$a+$b |
$a与$b 的和 |
- |
$a-$b |
$a与$b 的差 |
* |
$a*$b |
$a与$b 的积 |
/ |
$a*$b |
$a与$b 的商 |
% |
$a%$b |
$a与$b 的余(模) 取余 |
++ |
$a++/++$a |
先用再加/先加再用 |
-- |
$a--/--$a |
先用再减/先减再用 |
** |
3**3 |
幂运算:2 的 4 次方,需要 php5.6+ 版本 |
下面使用一个例子来举例算数运算符的运用:
$year = date("Y");
if ($year%4===0 &&$year%100!=0){
echo "今年是闰年~";
}else{
echo "今年是平年~";
}
符号 | 示例 | 描述 |
---|---|---|
> |
$a>$b |
$a大于$b |
< |
$a<$b |
$a小于$b |
= |
$a=$b |
将$b的值赋值给$a |
== |
$a==$b |
$a与$b 的值相等 |
=== |
$a===$b |
$a与$b 的值和类型都相等 |
>= |
$a>=$b |
$a大于等于$b |
<= |
$a<=$b |
$a小于等于$b |
说明一下
=
、==
、===
的区别:=
:赋值运算符
将某一个变量的值赋值给另外一个变量
$a = 6;
$b = $a;
==
:只要值相等就输出 true,否则输出 false
$a = 6;
$b = '6';
echo ($a == $b); //输出 1
var_dump($a == $b); //输出 bool(true)
===
:不但需要值相等,还需要类型相等
$a = 6;
$b = '6';
var_dump($a == $b); // bool(true)
echo "<br>";
var_dump($a === $b); // bool(false)
|符号|示例|描述|
|&&
|$a>0 && $b>0
|类似英文and
需要两边条件都为true
才满足条件|
|||
|$a>0 ||& $b>0
|类似英文or
其中一个条件为true
即满足条件|
|!
/ not
|var_dump(!(10>20))
|取反 如果条件为true
输出结果就为false
|
var_dump(!(10>20));bool(true);
<=>
:组合比较符号PHP 7 新增加的太空船运算符(组合比较符)用于比较两个表达式 $a 和 $b,如果 $a 小于、等于或大于 $b 时,它分别返回-1、0 或 1。
print(1<=>2); //输出 -1
print(1<=>1); //输出 1
print(1<=>0); //输出 0
通常是在 if 条件判断时简化使用。
通常有三个表达式,两个运算符?
、:
语法:表达式?满足条件时的语句:不满足条件时的语句
$price = 2000;
echo $price > 1000?"太贵了,买不起~":"价格还可以,我先买了~";
.
点连接符作用:连接字符串
$str1.$str2
返回连接之后的字符串。
if
if($price>1000)
{
echo "太贵了,我买不起~";
}
if else
if($price>1000)
{
echo "太贵了,我买不起~";
}else
{
"价格还可以,我买了";
}
if elseif else
$price = 3500;
if($price < 999){
echo "价格一般";
}elseif($price < 1200){
echo "价格有点小贵";
}elseif($price < 2000){
echo "太贵啦,买不起~";
}else{
echo "超级贵,大家别买~";
}
swicth case default
PS:
① 使用swicth case
进行多分支条件判断的时候,必须在每个条件符合语句执行完毕后添加一个break
跳出来,否则会出错。
②swicth case
通常用来做单值
判断
$price = 500;
switch($price){
case $price <999:
echo "价格一般";
break;
case $price < 1200:
echo "价格有点小贵";
break;
defalut:
echo "太贵了,大家别买";
}
while
循环 —> 入口判断型PS:
while
循环在循环体之中必须要有更新循环条件的语句,否则会进入死循环~
什么是入口判断型:就是当程序执行到该循环时,条件进入后先判断条件,条件成立即可执行,不成立就跳到下一个循环体
语法:
while(条件){code.........}
$cities = ['合肥','南京','杭州','苏州','上海'];
while ($city = current($cities)){//current 可以用来求数组的长度,类似JS中的length
echo $city.'<br>';
next($cities); //next 函数,将索引跳转到下一位,可以理解为跳转到下一个数组成员
}
指针复位函数:reset()
:将指针还原,如上述循环,最后将指针还原后$cities = ['合肥','南京','杭州','苏州','上海'];
do while
循环 —>出口判断型什么是出口判断型:就是当程序执行到循环体的时候,先执行条件符合语句,再来判断条件是否成立,条件成立输出,不成立就跳到下一个循环体
条件时放在出口
$cities = ['合肥','南京','杭州','苏州','上海'];
do{
echo $city.'<br>';
next($cities);
}while($city = current($cities));
for
循环语法:
for(变量;判断条件;更新循环条件)
for($i=0;$i<count($cities);$i++){
echo $cities[$i],'<br>';
}
echo "<hr>"
for($i=0;$i<count($cities);$i++){
// 有条件的循环:需要使用到continue函数(跳过)
if($i===2 || $i===3) continue; //如果i = 2/3,就跳过,不输出。
echo $cities[$i],'<br>';
}
常用于:流程控制之中。如分支控制和循环控制都可以使用
语法:便捷记忆:将{
替换为:
将}
替换为end<xxx>
这里使用 switch 循环来演示:
echo "<hr>";
$price = 500;
switch($price)://将{替换为:
case $price <999:
echo "价格一般";
break;
case $price < 1200:
echo "价格有点小贵";
break;
default :
echo "太贵了,大家别买";
endswitch;
// 这里是将}替换为了endswitch,其他流程控制类似,如endif、endwhile、endfor、
//endforeach 以及 endswitch;
模板语法的作用:
存在就是合理,它自有它的用处,这些语法能发挥的地方是在 PHP 和 HTML 混合页面的代码里面。好处如下:1)使 HTML 和 PHP 混合页面代码更加干净整齐。
2)流程控制逻辑更清晰,代码更容易阅读。
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP计算器</title>
</head>
<body>
<?php
error_reporting(E_ALL & ~E_NOTICE);
$mess = '';
if (isset($_POST['sub']))
{
if($_POST['num1'] == ' '){
$mess .= "第一个数字不能为空~<br>";
}
if($_POST['num2'] == ''){
$mess .= "第二个数字不能为空~<br>";
}else{
if($_POST['opt'] == "/" && $_POST['num2'] == 0)
{
$mess .= "除数不能为0~<br>";
}elseif($_POST['opt'] == "%" && $_POST['num2'] == 0)
{
$mess .= "除数不能为0~<br>";
}
}
}
?>
<table>
<form action="" method="post">
<h1>计算器</h1>
<tr>
<td>
<input type="number" size="4" name="num1" value="<?php echo $_POST['num1']; ?>" >
</td>
<td>
<select name="opt" >
<option value="+" <?php echo $_POST["opt"] == "+" ? "selected": "" ?>>+</option>
<option value="-" <?php echo $_POST["opt"] == "-" ? "selected": "" ?>>-</option>
<option value="*" <?php echo $_POST["opt"] == "*" ? "selected": "" ?>>*</option>
<option value="/" <?php echo $_POST["opt"] == "/" ? "selected": "" ?>>/</option>
<option value="%" <?php echo $_POST["opt"] == "%" ? "selected": "" ?>>%</option>
</select>
</td>
<td>
<input type="number" size="4" name="num2" value="<?php echo $_POST['num2']; ?>" >
</td>
<td>
<input type="submit" name="sub" value="计算" >
</td>
</tr>
</form>
<?php
if(!$mess)
{
$sum = 0;
switch($_POST['opt'])
{
case "+":
$sum = $_POST['num1'] + $_POST['num2']; break;
case "-":
$sum = $_POST['num1'] - $_POST['num2']; break;
case "*":
$sum = $_POST['num1'] * $_POST['num2']; break;
case "/":
$sum = $_POST['num1'] / $_POST['num2']; break;
case "%":
$sum = $_POST['num1'] % $_POST['num2']; break;
}
$res = "结果: {$_POST['num1']} {$_POST['opt']} {$_POST['num2']} = {$sum}";
echo isset($_POST['num1']) ? $res : '';
}else {
echo $mess;
}
?>
</table>
</body>