gpt4 book ai didi

php - 在 PHP 中将对象和整数相加的语义?

转载 作者:可可西里 更新时间:2023-11-01 01:03:44 25 4
gpt4 key购买 nike

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 * object to an integer 显然不是正确的做法,因为 PHP 提示说 “Object of class wat could not be converted to int”,但是,它有什么作用?

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


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

最佳答案

加法 (+) 如果其中一个是 float,则将两个操作数隐式转换为 float,否则两个操作数都转换为 整数 ( See paragraph #2 .)

看起来,至少现在,一个 object 转换为 int 的结果是值 1,因此结果 1000 + 1 = 10011 + 1000 = 1001,但是,per the documentation ,行为未定义,不应依赖。

如果您打开了 E_NOTICE 错误报告,还应该生成一个通知,说明该对象无法转换为 int。

关于php - 在 PHP 中将对象和整数相加的语义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com