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

举报
迷彩 发表于 2023/06/04 07:24:53 2023/06/04
【摘要】 前言PHP开发基础开速入门系列《【web 开发基础】php 开发基础快速入门 (1)-PHP 介绍及开发环境快速安装和基本使用介绍》《【web 开发基础】php 开发基础快速入门 (2)-PHP 的程序开发》《【web 开发基础】php 开发基础快速入门 (3)-PHP 程序符号标记和程序注释的使用及空白符详解》《【web 开发基础】php 开发基础快速入门 (4)-PHP 常量详解》这是P...

前言

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;
?>

执行结果如下:


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。