写点什么

【web 开发基础】PHP 快速入门(5)-PHP 运算符之算术运算符和字符串运算符详解

作者:迷彩
  • 2022 年 9 月 30 日
    广东
  • 本文字数:2805 字

    阅读完需:约 9 分钟

【web开发基础】PHP快速入门(5)-PHP运算符之算术运算符和字符串运算符详解

前言

PHP 开发基础开速入门系列

  1. 【web 开发基础】php 开发基础快速入门 (1)-PHP 介绍及开发环境快速安装和基本使用介绍

  2. 【web 开发基础】php 开发基础快速入门 (2)-PHP 的程序开发

  3. 【web 开发基础】php 开发基础快速入门 (3)-PHP 程序符号标记和程序注释的使用及空白符详解

  4. 【web 开发基础】php 开发基础快速入门 (4)-PHP 常量详解

这是 PHP 开发基础快速入门的第三篇文章,前两篇文章介绍了 PHP 的大致用法,书接上回,之前的文章对 PHP 的开始结束标记有过简单描述,这次详细唠唠 PHP 的标记相关知识以及程序注释等内容

运算符是什么

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是 2 和 3,而运算符则是"+"。如在 vb2005 中运算符大致可以分为 5 种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符;PHP 也同样包含这些运算符。


运算符和变量是所有计算机编程语言中的不可或缺的一部分,是一个命令解释器对一个或多个操作数(变量或数值)执行某种运算的符号,也称为操作符

可以根据操作数的个数分为一元运算符,二元运算符,三元运算符。一元运算符只运算一个值,比如:上图中的取反运算符(!)或自增自减运算符(加一元运算符)(++,--)。二元运算符可以运算两个值,PHP 支持大多数运算符都是二元运算符。而三元运算符只有一个(...?...:...)。如果按运算的不同功能去分类,可以分为算术运算符,字符串运算符,赋值运算符,比较运算符,逻辑运算符,位运算符和其他运算符。而本文要详细介绍的就是算术运算符,这也是我们在开发中最常用且最重要的运算符之一


算术运算符详解

算术运算符是最常用的符号,就是常见的数学操作符,用来处理简单的算术运算,包括加减乘除四则,取余等操作。PHP 中常用的运算符如下图所示:


算术运算符的使用非常容易,与我们在数学中使用运算符的方式是一样的,不过使用算术运算符应该注意,除号(/)和取余运算符(%)的除数不能为 0,也是除数不能为 0, 在程序中同样需要遵守所有的数学规则.另外,对于非数值类型的操作数,PHP 在算术运算时会自动将非数值类型的操作数转换成一个数字。变量的类型转换,后续文章会详细介绍。敬请期待!~


在这里着重介绍“%”、“++”和“--”三个算术运算符的在 PHP 中的使用,取模运算符(%)也称取余运算符。在 PHP 语言中在做求模运算时首先会将 %运算符两边的操作数转换为整型(如 int 型:也就是我们所说的整数),然后返回一个操作数除以第二个操作数后所得到的余数。在程序开发时使用取模运算符通常有两个目的:

  1. 做整除运算:比如在求闰年时,能被 4 整除并不能被 100 整除,或者能被 400 整除的就是闰年。

  2. 让输入的数字不超过某个数的范围,比如:让任意一个随机数在 10 以内,就可以让这个随机数和 10 取余,得到的余数就永远不会超过 10.实际项目中的应用也有很多,比如分库分表,哈希算法中的运用

<?php$a = 10 % 3; //使用两个整数进行取模运算var_dump($a); //输出整型的余数1
$b = 10.9 % 3.3; //使用两个浮点数进行取模操作var_dump($b); //输出整型的余数1
$c = "10ren" % "3ren"; //使用两个字符串进行取模运算var_dump($c); //输出整型的余数1
//计算是否闰年$year = 2022;if(($year % 400) == 0 || (($year % 100) != 0 && ($year %4) == 0)){ echo $year . "是闰年";}else{ echo $year . "是平年";}echo '<br>';$num = rand()%10; //获得一个10以内的随机数echo $num;
复制代码

执行结果:


在编程中,最常见的运算时对一个变量进行加 1 的或者减 1 的运算操作,虽然不是本文的重点,但是不得不提的就是赋值运算符,赋值运算符是所有编程语言当中最重要的运算符,赋值运算符可以改变变量的值,也可以写成(+=)这种方式计算递增变量的值,还可以使用(-=)计算递减变量的值.PHP 也提供了另外两个不寻常的算术运算符,来执行递增和递减的运算。分别称为递增(自增)和递减(自减)运算符,即“++”、“--”。自增和自减常用于循环之中。

自增和自减是一元运算符,这两个运算符并不只是递增和递减的另一个选项,在进一步应用 PHP 的过程中,就可以看出它们的更多的用处和价值,比如下面的代码:

<?php$a = 1;$a = $a + 1; //$a变量加1后再赋值给这个变量$a += 1; //使用赋值运算符在原变量上加1++$a;  //使用自增运算符递增1
复制代码

三句代码的效果是一样的,这三句代码都让变量 $a 递增 1,最后一种形式是用了自增运算符,显然是最简洁的一种方式.这个运算符的操作不同于前面介绍的其他运算符,因为它直接修改了其操作数的值.表达式的结果是递增变量的值,后面的表达式可在表达式中使用已经递增的值.

递增和递减运算符都可以在变量的前面使用前自增(++$a)后自增($a++),这样就决定了变量是先运算后使用还是先使用后运算.


下面我们看看具体的例子:

<?php$a = 10;//定义变量$a,赋值10$b = $a++;//后自增?>
复制代码



以上两条语句被执行后,$a 的值为 11,而 $b 的值是 10;首先是将 $a 的值赋给 $b,然后将 $a 的值加 1,而下面的语句被执行后,$a 和 $b 的值都是 11,首先将 $a 的值加 1,然后将 $a 的值赋给 $b:

<?php$a = 10;//定义变量$a,赋值10$b = ++$a;//前自增?>
复制代码



前自增和后自增的区别

<?php$a = 15; //声明变量$a赋值15$b = $a++ + ++$a; //先用$a的值加上$a自增1后再自增1的值17,再赋值给$b
//输出结果echo $a;echo '<br>';echo $b;echo '<br>';
$b = $a-- - --$a; //先用$a的值17减去$a自减1后再自减1的值15,再赋值给$b//输出结果echo $a;echo '<br>';echo $b;
复制代码

执行结果:


另外,在处理字符变量的算术运算时,PHP 沿袭了 Perl 语言的习惯,而非 C 语言的.比如:在 Perl 中,'Z' + 1 将得到 'AA';而在 C 语言中,'Z'+1 将得到'['(ord('Z')==90, ord('[')==91)。注意字符变量只能自增,不能自减,并且只支持纯字母(a-z 和 A-Z)。比如:涉及到字符变量的算术运算如下:

<?php$i = 'a';for($n=0;$n<52;$n++){ //循环自增52次	echo ++$i . "\n"; //$i自增}
复制代码

执行输出结果:


:自增或者自减运算符不会影响布尔值,自减 NULL 值也没有效果,但是自增 NULL 的结果是 1

PHP 中的字符串运算符

字符串基本用法

在 PHP 中字符串运算符只有一个,是英文的句号/点号( . ),也称为连接运算符.它是一个二元运算符,返回其左右参数连接后的字符串.这个运算符不仅可以将两个字符串连接起来,变成合并的新字符串;也可以将一个字符串和任何标量数据类型相连接,合并成的同样是新的字符串.不同类型拼接,PHP 底层会自动进行类型转换,会把其他类型隐式转换为字符串后拼接接成新的字符串

<?php$name = "李白";$age = 19;$height = 1.92;echo $name . "身高:". $height . "米" . "今年" . $age . "岁"?>
复制代码

执行结果如下:

字符串使用的野路子

在 PHP 中,两个都是纯数字的字符串,可以进行加法运算,PHP 引擎会把数字字符串转换为数值类型的数据然后进行加减乘除混合运算,但是在实际应用中不建议这么做,避免未知的错误最后自己在代码中手动做一次类型转换

<?php$a = '123' + '345';$b = 'abc123' + '345';echo $a;echo '<br>';echo $b;?>
复制代码

执行结果如下:


发布于: 刚刚阅读数: 4
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020.06.18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web开发基础】PHP快速入门(5)-PHP运算符之算术运算符和字符串运算符详解_运算符_迷彩_InfoQ写作社区