1

PHP の Extract 関数は、呼び出し元の関数のローカル スコープに変数を追加します。同じことを行う独自のphp関数抽出をどのように書くことができますか?

4

4 に答える 4

1

純粋なPHPではそれができないと思います.関数は呼び出し元の変数にアクセスできません.

これは、C エクステンションを作成して開発するために必要なもののように見えます。PHP 変数の内部をより詳細に制御できます。

(そして、なぜあなたがそれをやろうとしているのか、私にはよくわかりません。既存のextract関数を使用しないのはなぜですか?)

于 2010-02-12T11:26:20.780 に答える
0

はい、可能です。

私がこれをした理由は、値もトリムする必要がある抽出関数からもっと何かが必要だからです

function extractArray($ar) {
        if(count($ar)>=1) {
            foreach($ar as $k=>$v) {
                $GLOBALS[$k] = (is_array($v)?$v:trim($v));
            }
        }
}

$_GET['username'] = ' justnajm '; のように、$_GET、$_POST、およびその他の配列を渡すだけです。extractArray($_GET);

エコーするだけで、「justnajm」と出力されます

于 2010-07-12T15:41:54.860 に答える
0

PHPJSは、php の関数と同じ関数を含む JavaScript ライブラリです。ここでは、アイデアを得ることができる抽出関数を示します。そうは言っても、phpがすでに提供しているのに、なぜ独自の関数を探しているのだろうか。

于 2010-02-12T11:25:24.680 に答える
0

わかりました、それがただの楽しみのためであるなら、それは可能です:

<?php
$data=array('a' => 1, 'b' => 2);

foreach ($data as $name => $value) {
    ${$name} = $value;
}

echo $a;
?>

しかし、いくつかの問題 - $data、$name、$value との競合や、関数でラップできないなどがあります。しかし、可能です。

于 2010-02-12T14:42:41.250 に答える