echo 1+2+"3+4+5“输出的结果是6

时间:2022-01-28 09:54:19

如上,为什么echo 1+2+"3+4+5”输出的结果是6呢?刚开始我也不是很明白,以为有问题,但在电脑上运行程序的时候,结果出现6 了。这让我更加疑惑不解。现将问题解释一番。

在php语言里,对于数字式字符与数字如何参与运算,在具体情况下会视情来确定,例如:echo
"3+4+5";  结果: 3+4+5 。因为将其视作是一个字符串了。而当echo 1+2+"3+4+5”时,会将其视为一个表达式。这样就涉及到PHP中不同数据类型运算的问题了。不同数据类型的数据在参与数据时,php会进行数据转换,以尽量确保使表达式成

功运行,在"3+4+5"前面的运算符是 + ,那么,php会将"3+4+5"当作数值类型,此时会隐式地进行数据类型的转换,将

这个字符串转换成数值,php字符串转整数的规则是,从字符串前部开始提取尽可能多的数字,后面非数字部分被丢

弃。"3+4+5"是字符串,进入数值计算的时候,会将字符串硬性的转化为数值,一般是取第一个字符串的值,如果是数

值型的字符串,则是一个完整的数字。因此,"3+4+5"转换成数值的结果就是3,所以,整个表达式的结果是:1+2+3
=

6。

echo 1+2+"3+4+5“输出的结果是6的更多相关文章

  1. 6-x2 echo命令:将指定字符串输出到 STDOUT

    echo 用法 常用转义符 echo 用法     echo 用来在终端输出字符串,并在最后默认加上换行符. echo 加上-n参数可以使数据字符串后不再换行 echo 加上-e参数可以解析转义字符 ...

  2. echo '1'.print(2)+3; 的输出结果为什么是511

    今天看到一道有趣的题目,如上所示.结果为什么会是511呢? 这个结果的计算分为三步来理解: 首先计算的是 右边print(2)+3,这个你可以直接理解成print(2+3),得到的结果是5.而prin ...

  3. (学习笔记)PHP的输出echo和print

    echo 和 print 之间的差异: echo - 能够输出一个以上的字符串 print - 只能输出一个字符串,并始终返回 1 echo语句 echo 或 echo()均可. 输出换行 echo ...

  4. echo、print、sprint、sprintf输出

    echo() 函数 定义和用法 echo() 函数输出一个或多个字符串. 语法 echo(strings) 参数 描述 strings 必需.一个或多个要发送到输出的字符串. 提示和注释 注释:ech ...

  5. echo命令

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的 ...

  6. ThinkCMF变量输出+使用函数

    ThinkCMF变量输出+使用函数的方式同ThinkPHP. ThinkPHP变量输出: 在模板中输出变量的方法很简单,例如,在控制器中我们给模板变量赋值: $name = 'ThinkPHP'; $ ...

  7. 1.__tostring()这个方法在类里可以直接输出对象。2.克隆对象的运用

    <?php //__tostring()这个方法在类里的用途 能够直接输出对象 class Ren { public $name; function Run() { echo "跑&q ...

  8. shell 控制输出格式 echo printf

    (1)echo [A@XY log]$ echo -e "ab\t45"   #带格式输出ab    45[A@XY log]$ echo "ab\t45"  ...

  9. PHP基础语法&colon; echo&comma;var&lowbar;dump&comma; 常用函数:随机数:拆分字符串&colon;explode&lpar;&rpar;、rand&lpar;&rpar;、日期时间:time&lpar;&rpar;、字符串转化为时间戳:strtotime&lpar;&rpar;可变参数的函数:PHP里数组长度表示方法:count&lpar;&dollar;attr&lbrack;指数组&rsqb;&rpar;;字符串长度:strlen&lpar;&dollar;a&rpar;

    PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr;  //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...

随机推荐

  1. &lbrack;ASP&period;NET MVC 小牛之路&rsqb;04 - 依赖注入&lpar;DI&rpar;和Ninject

    本人博客已转移至:http://www.exblr.com/liam  为什么需要依赖注入 在[ASP.NET MVC 小牛之路]系列的理解MVC模式文章中,我们提到MVC的一个重要特征是关注点分离( ...

  2. angular源码分析:angular中&dollar;rootscope的实现——scope的一生

    在angular中,$scope是一个关键的服务,可以被注入到controller中,注入其他服务却只能是$rootscope.scope是一个概念,是一个类,而$rootscope和被注入到cont ...

  3. LSD-SLAM深入学习(4)-非ROS改造

    前言 没错,距离上一次博客的发布已经俩月了,今天是圣诞节,圣诞快乐. 在前几篇中已经完成了ROS下面的一系列操作.如有任何问题,feel free to contact me at robotsmin ...

  4. Android Studio 2&period;2的新鲜事

    转载:http://mp.weixin.qq.com/s?__biz=MzAwODY4OTk2Mg==&mid=2652039482&idx=1&sn=9aa9b204af34 ...

  5. 简谈 JavaScript、Java 中链式方法调用大致实现原理

    相信,在 JavaScript .C# 中都见过不少链式方法调用,那么,其中实现该类链式调用原理,大家有没有仔细思考过?其中 JavaScript 类库:jQuery 中就存在大量例子,而在 C# 中 ...

  6. c&num; 学习笔记(三)

    程序集程序集的私有部署 不用在注册表中注册组件卸载只需要从文件系统中删除他即可 共享程序集和GAC 只有强命名程序集能被添加到GAC中程序集数据签名只需在安装到GAC时检查一次 GAC内的并肩执行GA ...

  7. php的多线程使用

    PHP 5.3 以上版本,使用pthreads PHP扩展,可以使PHP真正地支持多线程.多线程在处理重复性的循环任务,能够大大缩短程序执行时间. 在liunx下的安装 准备工作: 1.下载Threa ...

  8. Ubuntu &amp&semi; GitLab CI &amp&semi; Docker &amp&semi; ASP&period;NET Core 2&period;0 自动化发布和部署(1)

    相关博文: Ubuntu 简单安装和配置 GitLab Ubuntu 简单安装 Docker Ubuntu Docker 简单安装 GitLab Ubuntu Docker 安装和配置 GitLab ...

  9. UTF-8 UTF-16 UTF-32 最根本的区别&quest;

    昨天看书的时候突然发现UTF-16 我好像还没见过这个东西  也可能忘记了 反正现在对自己科普一下吧 最根本的区别 UTF-32 把所有的字符都用32bit -- 4个字节 来表示 UTF-16 和 ...

  10. mysqlbinlog 工具分析binlog日志

    MySQL的binlog 日志对于生产环境非常有用,任何时间对数据库的修改都会记录在binglog中:当数据发生增删改,创建数据库对象都会记录到binlog中,数据库的复制也是基于binlog进行同步 ...