Skip to content

Commit 0571138

Browse files
committed
equals operate
1 parent 56c0f95 commit 0571138

File tree

2 files changed

+60
-6
lines changed

2 files changed

+60
-6
lines changed

CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,16 @@ link_directories(${PHP_LDFLAGS})
2929
include_directories(include)
3030
include_directories(BEFORE ${PHP_INCLUDE_DIR} ${PHP_INCLUDE_DIR}/Zend ${PHP_INCLUDE_DIR}/main ${PHP_INCLUDE_DIR}/TSRM)
3131
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
32+
33+
IF (APPLE)
34+
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
35+
message(${CMAKE_SHARED_LINKER_FLAGS})
36+
ENDIF ()
37+
3238
#libary
3339
add_library(phpx SHARED ${DIR_SRCS})
3440

3541
#install
3642
INSTALL(CODE "MESSAGE(\"Are you run command using root user?\")")
3743
INSTALL(TARGETS phpx LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
38-
INSTALL(FILES ${HEADER_FILES} DESTINATION include)
44+
INSTALL(FILES ${HEADER_FILES} DESTINATION include)

include/phpx.h

Lines changed: 53 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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 *);
13871435
typedef void (*method_t)(Object &, Args &, Variant &retval);
13881436

13891437
struct 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

13971445
extern map<const char *, map<const char *, method_t, strCmp>, strCmp> method_map;

0 commit comments

Comments
 (0)