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