开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1140|回复: 0
收起左侧

[PHP相关教程] PHP - 运算符

[复制链接]
发表于 2020-7-15 16:29:26 | 显示全部楼层 |阅读模式   山东省德州市

1. 算术运算符

序号 运算符 示例 描述
1 + $a+$b $a与$b 的和
2 - $a-$b $a与$b 的差
3 * $a*$b $a与$b 的积
4 / $a/$b $a与$b 的商
5 % $a%$b $a与$b 的余(模)
6 ++ $a++/++$a 先用再加/先加再用
7 -- $a--/--$a 先用再减/先减再用
8 ** 2**4 幂运算:2 的 4 次方
  • $a++=>$a = $a + 1, $a--=>$a = $a - 1
  • **: 幂运算需要 php5.6+版本

演示代码

<?php
// 赋值
$a = 10;
$b = 15;

// %  取模 就是取余数

echo $b%$a .'<br>';   //输出 5  15/10=1 余5

// $a++   ++$a  自增

// $a++ 先用后加

echo $a++.'<br>' ; //输出 10
/*
等同于
echo $a;   //先输出
$a = $a+1 ;    //再加一
*/
echo $a.'<br>';    //输出 11

//   ++$a  先加后用

$c = 20;

echo ++$c.'<br>'; //输出 21

/*等同于
$c = $c + 1 ;   //先加1
echo $c  ;    //再输出
*/

2. 字符串运算符

运算符 示例 描述
. $str1 . $str2 连接运算,返回连接之后的字符串

3. 赋值运算符

序号 运算符 示例 描述
1 = $a = 10 将表达式的值赋给变量
2 += $a += 10 $a = $a + 10;
3 -= $a -= 10 $a = $a - 10;
4 *= $a *= 10 $a = $a * 10;
5 /= $a /= 10 $a = $a / 10;
6 %= $a %= 10 $a = $a % 10;
7 .= $a .= 'a' $a = $a . 'a';

代码

<?php
// 赋值
$a = 10;
$b = 15;

// +=
$a += 10;
/**等同于
 * $a = $a + 10 ;
*/
echo $a ;   //输出 20

//    .=
$b .= 'abc';
/**等同于
 * $b = $b . 'abc';
 */

 echo $b ;  //输出   15abc

4. 比较运算符

序号 运算符 示例 描述
1 > $a > $b 大于
2 >= $a >= $b 大于或等于
3 < $a < $b 小于
4 <= $a <= $b 小于或等于
5 == $a == $b 等于 (值相等即可)
6 === $a == $b 全等于(二边值与类型全等)
7 != $a != $b 不相等
8 !== $a !== $b 不全等
9 <=> $a <=> $b 太空船php7+
  • 比较运算符: 返回布尔值,常用于流程控制中(if/while/for...)
  • <=>: 也叫组合比较符, 例如$a <=> $b, 有三种返回结果
序号 运算 结果
1 $a > $b 返回>0的整数
2 $a < $b 返回<0的整数
3 $a = $b 返回=0的整数

演示代码


<?php

// 太空船运算符
// 赋值
$a = 20;
$b = 15;

$ab = $a<=>$b;
// 判断
if ($ab == 1) :
    echo 'a>b';
elseif ($ab == 0) :
    echo 'a=b';
else :
    echo 'a<b';
endif;

5. 逻辑运算符

序号 运算符 示例 描述
1 && $a && $b 逻辑与
2 || $a || $b 逻辑或
3 ! !$a 逻辑非
4 xor $a xor $b 逻辑异或
  • 逻辑运算符优先级小于比较运算符

演示代码

<?php
error_reporting(E_ALL);   //打开所有报错
// $name = 'a';

if( isset($name) && $name == "admin"):

   echo '管理员'; //name有值且值=admin 显示管理员

    elseif ( isset($name) && $name != 'admin'):    // 不等于 与上面结果相同
       echo '普通用户';  //name有值但值不等于admin 显示普通用户

    else:echo '未登录';  //name变量为空或没有name变量 显示未登录

endif;
#当前满足第三条 运行结果   未登录
echo '<hr>';

// 逻辑运算符 ||

$wechat = '1'; //微信
$tel = '1'; //手机号
$email = '1'; //邮箱

if ( $wechat === '' || $tel === '' || $email === '' ):  //如果三个变量其中有一个为空,那么输出当前账户未绑定手机/微信/邮箱
    echo '当前账户未绑定手机/微信/邮箱';
else: echo '账户很安全';        //如果三个变量均不为空,那么输出账户很安全
 endif;
//当前三个值都有变量 输出 账户很安全
 echo '<hr>';

6. 三元运算符

序号 运算符 示例 描述 场景
1 ?: $a ?: $b 仅判断表达式true/false 简化双分支
2 ?? $a ?? $b 判断变量存在且不为 null 设置默认值

演示代码

// 三元运算符  ?:

$realname = '1';
$password = '';
$problem = '';
$r = 1;

// 用if写
// if( $realname === '' || $password === '' || $problem === ''){
//     echo '当前账户存在隐患,具体原因如下:'.'<br>';
//     if ($realname === '') {
//         echo $r++.'.未实名'.'<br>';
//     }
//     if ($password === '') {
//         echo $r++.'.未设置密码'.'<br>';
//     }
//     if ($problem === '') {
//         echo $r++.'.未添加安全问题'.'<br>';
//     }
// }

// 使用三元运算符简写
echo  $realname === '' || $password === '' || $problem === ''?
'当前账户存在隐患,具体原因如下:'.'<br>':'';
echo $realname ==='' ? $r++.'.未实名'.'<br>' : '' ;
echo $password ==='' ? $r++.'.未设置密码'.'<br>':'';
echo $problem ===''?$r++.'.未添加安全问题'.'<br>':'';
echo '<hr>';

// 三元运算符 ??

# $username  = '我爱php';

// 输出、判断有没有设置用户名,如果有显示用户名,如果没有显示默认名

// 使用 ?: 写

// echo $username = isset($username) ? $username : '木有昵称';

//输出  检测变量名是否存在且值不为null  存在直接输出   不存在输出木有昵称
// 当前该变量已被注释不存在,则输出 木有昵称

# 用三元运算符??简化上面代码

echo $username = $username ?? '木有昵称';
// 值相同,完美

7. 上面逻辑运算符、三元运算符中(?:)示例不够简洁,全部推翻重做

<?php
error_reporting(E_ALL);   //打开所有报错

// 第一个例子name值为admin显示管理员,值为其他显示其他用户,没有值则显示未登录

 $name = '';

if(isset($name) && $name === 'admin') :
    echo '管理员'.$name; //name值等于admin 输出
    elseif (isset($name) && !empty($name)):
        echo '普通用户'.$name;   //有name值 且不为空 输出
        else : echo '未登录';  //没有name变量 或 name值为空、null false
    endif;

echo '<hr>';

// 第二个例子 三个变量都存在且有值则输出账户很安全否则输出账号危险
// 还要判断值的格式是否正确

$wechat = '1'; //微信
$tel = '1'; //手机号
$email = '1@qq.com'; //邮箱
$i = 1;

// 检测WeChat是否存在值、手机号是否存在值且值的格式是否为整数、邮箱是否存在值且值的格式是否为邮箱
//都通过则显示账户安全,否则存在隐患

if (isset($wechat)&&$wechat != '' && isset($tel) && filter_var($tel,FILTER_VALIDATE_INT)&&isset($email)&& filter_var($email,FILTER_VALIDATE_EMAIL)) {
    echo '账户安全';
}else {
    echo '当前账户存在安全隐患,具体原因如下:'.'<br>';
}

// 检测$WeChat是否存在值,存在则不提示,不存在提示未设置
echo isset($wechat) && !empty($wechat) ? null : $i++ .'.微信账号未设置'.'<br>';

 // 检测$tel是否存在值,存在则不提示,不存在提示未设置
if (!isset($tel) && empty($tel)) :
    echo  $i++ . '.手机号未设置'.'<br>';

// 检测$tel值类型是否正确,正确则不提示,不正确提示格式错误
elseif (isset($tel) && !filter_var($tel,FILTER_VALIDATE_INT)) :
    echo $i++ . '.手机号格式错误'.'<br>';
endif;

 // 检测$email是否存在值,存在则不提示,不存在提示未设置
 if (!isset($email) && empty($email)) :
    echo  $i++ . '.邮箱未设置'.'<br>';

    //  检测$email值类型是否正确,正确则不提示,不正确提示格式错误
    elseif(isset($email)&& !filter_var($email,FILTER_VALIDATE_EMAIL)):
     echo  $i++ . '.邮箱格式错误'.'<br>';
    endif;

    echo '<hr>';
# 3. 若用户有昵称则原样输出,没有则显示默认昵称

$name = '我爱PHP';

echo $name = isset($name) && empty($name) ?'木有昵称':$name;

8. 错误屏蔽符

运算符 示例 描述 场景
@ @(10/0) 屏蔽所有运行错误 线上生产环境
  • 屏蔽错误使用,开发环境建议不屏蔽,上线后屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表