SlideShare a Scribd company logo
typedef union _zvalue_value {
    long lval;         /* long value */
    double dval;       /* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;     /* hash table value */
    zend_object obj;
} zvalue_value;

struct _zval_struct {
    zvalue_value value; /* value */
    zend_uchar type;    /* active type */
    zend_uchar is_ref;
    zend_ushort refcount;
};
PHP_FUNCTION(example2)
{
    char *str;
    int str_len;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                      "s", &str, &str_len) == FAILURE) {
        return;
    }
    printf("%sn", str);
}
#define RETURN_LONG(l) { RETVAL_LONG(l); return; }
#define RETVAL_LONG(l) ZVAL_LONG(return_value, l)
#define ZVAL_LONG(z, l) {               
          Z_TYPE_P(z) = IS_LONG;        
          Z_LVAL_P(z) = l;              
}
Php Meets Messagepack

More Related Content

More from Hideyuki TAKEI

Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
Beatroboでのハードウェアプロトタイピング
Hideyuki TAKEI
 
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Hideyuki TAKEI
 
Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #gocon
Hideyuki TAKEI
 
cocos2d-x で PlugAir を 使えるようにしてみた
cocos2d-x で PlugAir を 使えるようにしてみたcocos2d-x で PlugAir を 使えるようにしてみた
cocos2d-x で PlugAir を 使えるようにしてみた
Hideyuki TAKEI
 
Android時代のミニ四駆
Android時代のミニ四駆Android時代のミニ四駆
Android時代のミニ四駆
Hideyuki TAKEI
 
『車内での携帯電話の ご使用はご遠慮ください』 問題について考える 〜iPhoneケースつくりました〜
『車内での携帯電話の ご使用はご遠慮ください』 問題について考える 〜iPhoneケースつくりました〜『車内での携帯電話の ご使用はご遠慮ください』 問題について考える 〜iPhoneケースつくりました〜
『車内での携帯電話の ご使用はご遠慮ください』 問題について考える 〜iPhoneケースつくりました〜
Hideyuki TAKEI
 
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
Hideyuki TAKEI
 
Kansai.AR - ARを作って考える~これであなたも超高音~
Kansai.AR - ARを作って考える~これであなたも超高音~Kansai.AR - ARを作って考える~これであなたも超高音~
Kansai.AR - ARを作って考える~これであなたも超高音~
Hideyuki TAKEI
 
ちょい絶Vol3「Webからこんばんは」
ちょい絶Vol3「Webからこんばんは」ちょい絶Vol3「Webからこんばんは」
ちょい絶Vol3「Webからこんばんは」
Hideyuki TAKEI
 
学びの場としての畳空間 〜畳、敷きませんか?〜
学びの場としての畳空間 〜畳、敷きませんか?〜学びの場としての畳空間 〜畳、敷きませんか?〜
学びの場としての畳空間 〜畳、敷きませんか?〜
Hideyuki TAKEI
 

More from Hideyuki TAKEI (11)

Beatroboでのハードウェアプロトタイピング
BeatroboでのハードウェアプロトタイピングBeatroboでのハードウェアプロトタイピング
Beatroboでのハードウェアプロトタイピング
 
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 
Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #gocon
 
cocos2d-x で PlugAir を 使えるようにしてみた
cocos2d-x で PlugAir を 使えるようにしてみたcocos2d-x で PlugAir を 使えるようにしてみた
cocos2d-x で PlugAir を 使えるようにしてみた
 
Klabの梅雨対策
Klabの梅雨対策Klabの梅雨対策
Klabの梅雨対策
 
Android時代のミニ四駆
Android時代のミニ四駆Android時代のミニ四駆
Android時代のミニ四駆
 
『車内での携帯電話の ご使用はご遠慮ください』 問題について考える 〜iPhoneケースつくりました〜
『車内での携帯電話の ご使用はご遠慮ください』 問題について考える 〜iPhoneケースつくりました〜『車内での携帯電話の ご使用はご遠慮ください』 問題について考える 〜iPhoneケースつくりました〜
『車内での携帯電話の ご使用はご遠慮ください』 問題について考える 〜iPhoneケースつくりました〜
 
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
 
Kansai.AR - ARを作って考える~これであなたも超高音~
Kansai.AR - ARを作って考える~これであなたも超高音~Kansai.AR - ARを作って考える~これであなたも超高音~
Kansai.AR - ARを作って考える~これであなたも超高音~
 
ちょい絶Vol3「Webからこんばんは」
ちょい絶Vol3「Webからこんばんは」ちょい絶Vol3「Webからこんばんは」
ちょい絶Vol3「Webからこんばんは」
 
学びの場としての畳空間 〜畳、敷きませんか?〜
学びの場としての畳空間 〜畳、敷きませんか?〜学びの場としての畳空間 〜畳、敷きませんか?〜
学びの場としての畳空間 〜畳、敷きませんか?〜
 

Php Meets Messagepack

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. typedef union _zvalue_value { long lval; /* long value */ double dval; /* double value */ struct { char *val; int len; } str; HashTable *ht; /* hash table value */ zend_object obj; } zvalue_value; struct _zval_struct { zvalue_value value; /* value */ zend_uchar type; /* active type */ zend_uchar is_ref; zend_ushort refcount; };
  • 19.
  • 20. PHP_FUNCTION(example2) { char *str; int str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) { return; } printf("%sn", str); }
  • 21. #define RETURN_LONG(l) { RETVAL_LONG(l); return; } #define RETVAL_LONG(l) ZVAL_LONG(return_value, l) #define ZVAL_LONG(z, l) {                         Z_TYPE_P(z) = IS_LONG;                   Z_LVAL_P(z) = l;               }