加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读