检查是否可以比较PHP对象

时间:2016-05-14 15:43:05

标签: php

某些PHP对象(如DateTime实例)可以与大于或小于的对象进行比较。给定

$time_1 = new DateTime('2016-02-24 15:22:01');
$time_2 = new DateTime('2016-01-30 10:41:29');

然后比较time_1<time_2有效并且评估为false。

对于我们从自己的类创建的对象,无法进行这样的比较。

给定一个对象,是否可以确定是否可以将其与大于或小于符号进行比较?

编辑:

我想某种方法来测试一个对象来自一个已经超载比较运算符的类。例如:

class MyClass {}
$obj_1 = new MyClass();
$obj_2 = new DateTime();

has_overloaded( $obj_1 ); //false
has_overloaded( $obj_2 ); //true

1 个答案:

答案 0 :(得分:1)

请查看PHP文档中的this article。对于您自己的PHP类,操作符重载是不可能的。如本文所述,只有某些内置类支持直接使用运算符,例如大于,...。由于支持仅限于内置类,因此没有内置函数可以检查支持。 A feature/change request已经创建,但是支持似乎有限。