ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

在PHP中添加对象和整数的语义?

2019-10-31 00:28:58  阅读:216  来源: 互联网

标签:duck-typing type-conversion php object


class wat
{
   public $a = 3.14;
   public $x = 9;
   public $y = 2;
}


$a = new wat();

var_dump(1000 + $a);
var_dump($a + 1000);

输出为:

int(1001)
int(1001)

好吧,将wat *对象添加到一个整数显然不是正确的选择,因为PHP抱怨它“无法将wat类的对象转换为int”,但是它仍然是做什么的呢?

(我也有问这个问题的实际原因,我想重构一个函数以摆脱“ PHP Notice”,同时仍然保持行为完全不变.)

*:http://img.youtube.com/vi/kXEgk1Hdze0/1.jpg

解决方法:

如果两个操作数中的任何一个为浮点,则加法()隐式将两个操作数都转换为浮点数,否则将两个操作数都转换为整数(See paragraph #2).

看起来,至少到目前为止,强制转换为int的对象的结果为1,因此结果为1000 1 = 1001或1 1000 = 1001,但是per the documentation的行为是不确定的,不应依赖.

如果您已打开E_NOTICE错误报告,则还应生成一条通知,指出该对象无法转换为int.

标签:duck-typing,type-conversion,php,object
来源: https://codeday.me/bug/20191030/1971785.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有