@@ -332,6 +332,50 @@ class Variant
332332 }
333333 return static_cast <T *>(_ptr);
334334 }
335+ bool operator ==(Variant &v)
336+ {
337+ return equals (v);
338+ }
339+ bool operator ==(bool v)
340+ {
341+ Variant _tmp (v);
342+ return equals (_tmp);
343+ }
344+ bool operator ==(int v)
345+ {
346+ Variant _tmp (v);
347+ return equals (_tmp);
348+ }
349+ bool operator ==(long v)
350+ {
351+ Variant _tmp (v);
352+ return equals (_tmp);
353+ }
354+ bool operator ==(float v)
355+ {
356+ Variant _tmp (v);
357+ return equals (_tmp);
358+ }
359+ bool operator ==(double v)
360+ {
361+ Variant _tmp (v);
362+ return equals (_tmp);
363+ }
364+ bool operator ==(nullptr_t v)
365+ {
366+ Variant _tmp (v);
367+ return equals (_tmp);
368+ }
369+ bool operator ==(string &v)
370+ {
371+ Variant _tmp (v);
372+ return equals (_tmp);
373+ }
374+ bool operator ==(const char *v)
375+ {
376+ Variant _tmp (v);
377+ return equals (_tmp);
378+ }
335379 bool equals (Variant &v, bool strict = false )
336380 {
337381 if (strict)
@@ -455,6 +499,10 @@ class String
455499 }
456500 return memcmp (str.c_str (), value->val , value->len ) == 0 ;
457501 }
502+ inline bool operator ==(String &v)
503+ {
504+ return equals (v);
505+ }
458506 bool equals (String &str, bool ci = false )
459507 {
460508 if (str.length () != value->len )
@@ -1387,11 +1435,11 @@ typedef void (*resource_dtor)(zend_resource *);
13871435typedef void (*method_t )(Object &, Args &, Variant &retval);
13881436
13891437struct strCmp
1390- {
1391- bool operator ()( const char * s1, const char * s2 ) const
1392- {
1393- return strcmp ( s1, s2 ) < 0 ;
1394- }
1438+ {
1439+ bool operator ()( const char * s1, const char * s2 ) const
1440+ {
1441+ return strcmp ( s1, s2 ) < 0 ;
1442+ }
13951443};
13961444
13971445extern map<const char *, map<const char *, method_t , strCmp>, strCmp> method_map;
0 commit comments