Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

PECL::params

Sara Golemon女史作だそうで。


Userspace equivalent of zend_parse_parameters()

「zend_parse_parameters()って、なんじゃい!」と言ってしまいそうですがw、PHPのソースを見たり、PECLに馴染みのある人だと分かるんじゃないでしょうか。
名前の通り、引数をparseする関数なんですが、バリデータじゃありません。まあ、次のPHPソースと実行結果を見れば分かるかと。

<?php
/**
 * @see http://blog.libssh2.org/index.php?/archives/89-Parameter-Parsing.html
 */
function foo()
{
    var_dump(params_parse("sd|b"));
}

foo('foo', 1);
foo('foo', 1, true);
foo('foo');
foo('foo', 'invalid');
foo('foo', false, 'invalid');
$ php params.php
array(3) {
  [0]=>
  string(3) "foo"
  [1]=>
  float(1)
  [2]=>
  bool(false)
}
array(3) {
  [0]=>
  string(3) "foo"
  [1]=>
  float(1)
  [2]=>
  bool(true)
}

Warning: params_parse(): foo expects at least 2 arguments, 1 given in /home/shimooka/public_html/pecl/params/params.php on line 7

Call Stack:
    0.0013      49300   1. {main}() /home/shimooka/public_html/pecl/params/params.php:0
    0.0290      49932   2. foo() /home/shimooka/public_html/pecl/params/params.php:12
    0.0290      49932   3. params_parse() /home/shimooka/public_html/pecl/params/params.php:7

bool(false)
array(3) {
  [0]=>
  string(3) "foo"
  [1]=>
  float(0)
  [2]=>
  bool(false)
}
array(3) {
  [0]=>
  string(3) "foo"
  [1]=>
  float(0)
  [2]=>
  bool(true)
}

詳しい説明は、ソースにもあるhttp://blog.libssh2.org/index.php?/archives/89-Parameter-Parsing.htmlを見てください。
うーん。これをPECL化して、どうするつもりなんだろ?思いつかない。。。w