php – 在对象转换时返回特定值的对象上的函数
发布时间:2020-12-13 17:38:15 所属栏目:PHP教程 来源:网络整理
导读:首先,我很抱歉这个问题太模糊了.我不记得这是什么,或者它们是如何工作的,所以开始搜索或制定一个好的标题是非常困难的. 我有两个问题包含在一个: 第一: 对象如何在内部转换为其他类型?这个叫什么? 例: $Obj{ $value = 1; $other = 2; $more = 3;}$myObj
首先,我很抱歉这个问题太模糊了.我不记得这是什么,或者它们是如何工作的,所以开始搜索或制定一个好的标题是非常困难的.
我有两个问题包含在一个: 第一: 对象如何在内部转换为其他类型?这个叫什么? 例: $Obj{ $value = 1; $other = 2; $more = 3; } $myObj = (string)$Obj; print $myObj; // prints "1,2,3" or something like that 第二: 这种方法可以用在数学中吗?是否有一些覆盖函数可以识别何时在数学中使用Object? 例: $Obj{ $value = 1; $other = 2; $more = 3; } $result = 4 / $Obj; print $result; // prints ".66666667" or something similar (sum of all properties) 更新: 我认为它可能与serialize()有关,但我知道我已经听说过一个“自动”完成的情况,而不必调用serialize()并且它以一种实际上并没有序列化整个对象的方式完成,它只是将它转换为可用的值,就像上面的例子. 最后: 感谢@trey对于它是正确的casting和@webbiedave指向我的魔术方法__toString. 解决方法
它正在进行转换,因为您可以定义魔术方法
__toString以允许根据需要将对象强制转换为字符串,然后允许PHP将其转换为int或浮点数学.
请看以下示例: class A { public $value = 1; public $other = 2; public $more = 3; public function __toString() { return (string)($this->value + $this->other + $this->more); } } $obj = new A(); echo 4 / (string)$obj; // outputs 0.66666666666667 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |