スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに


[2013-02-19-1] PHP extensionの作り方 配列を返す方法

超当たり前ですが、配列の配列を返すためには、配列に配列をつっこみます。
配列にセットする配列を作るには、array_initで配列を作ります。

手順を簡単にいうとこんな漢字。

  • zvalを作成し、array_initで初期化します。
  • add_next_index 系のAPIで値をセットします。
  • zend_symtable_update で値をセットしてもいいです。
  • add_next_index_zval とかで return_value に、作成したzvalを追加します。

spec.xml の一部 その1


zval *z;
MAKE_STD_ZVAL(z);
array_init(z);
add_next_index_long(z, 1);
add_next_index_long(z, 2);
add_next_index_long(z, 3);
add_next_index_zval(return_value, z);

上記のコードは、下記の配列を返します。

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

)


spec.xml の一部 その2


もう1つサンプル。

int i = 0;
for (i = 0; i < 5; i++) {

	zval *z;
	MAKE_STD_ZVAL(z);
	array_init(z);
	add_next_index_long(z, i);
	add_next_index_zval(return_value, z);
}

上記のコードは、下記の配列を返します。

Array
(
    [0] => Array
        (
            [0] => 0
        )

    [1] => Array
        (
            [0] => 1
        )

    [2] => Array
        (
            [0] => 2
        )

    [3] => Array
        (
            [0] => 3
        )

    [4] => Array
        (
            [0] => 4
        )

)

超簡単ですね。
参照しているページ (サイト内): [2013-02-27-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー