ホームページ >バックエンド開発 >PHPチュートリアル >PHP関数を見つけるのを手伝ってください

PHP関数を見つけるのを手伝ってください

WBOY
WBOYオリジナル
2016-06-20 12:25:31810ブラウズ

PHP には次のような関数があるような印象があります:

$a = 1;$b = 2;$array = xxxx($a,$b);

返される配列は
array(
'a' => 1,
'b' = > 2
)
つまり、変数名をキー名として使用します

この種の問題に遭遇すると、私は検索エンジンにひざまずきます~



ディスカッション (解決策) への返信

この関数は必要ありません。
$arr = array();
$arr['a'] = 1; 2;

その関数は必要ないので、なぜこれを実行しないのですか?

$arr = array(); ] = 1;
$arr['b'] = 2;

見つけました

理由は〜


どちらが書きやすいと思いますか?
$a = 1;$b = 2;$c = 3;$array1 = compact('a', 'b', 'c');$array2 = array('a'=>$a, 'b'=>$b, 'c'=>$c);

初めに変数に初期化する必要はありません。

$a = 1;
$c = 3;
$array1 = 'a', 'b', 'c'; >これには 4 行かかります

$array2 = array('a'=>1, 'b'=>2, 'c'=>3)
これには 1 行しか必要ありません

$arr = array();
$arr['a'] = 1;
$arr['c'] = 3 ;
それでもまだ4行あります。

必要に応じて、$arr['b'] を使用してこのように読み取ります。
$arr['b']['c' を除く) 変数 $b はまったく必要ありません。 ]['d'] これは非常に長いので、コードを簡略化するために複数回使用した場合にのみ変数を保存します。

しかし、コンパクト関数のことを本当に忘れていたことを認めなければなりません


これは配列である必要があるため、最初に変数に初期化する必要はありません。始まり。


$a = 1;

$c = 3;

$array1 = 'a', 'b', 'c'; >これには 4 行かかります


$array2 = array('a'=>1, 'b'=>2, 'c'=>3);
これには 1 行しかかかりません

$arr = array();
$arr['a'] = 1;
$arr['c'] = 3 ;
それでもまだ4行あります。

必要に応じて、$arr['b'] を使用してこのように読み取ります。
$arr['b']['c' を除く) 変数 $b はまったく必要ありません。 ]['d'] これは非常に長いので、コードを簡略化するために複数回使用した場合にのみ変数を保存します。

最初の 3 つの変数は必須です。これらは 1 行ですよね?
目的は、変数の配列を作成することです。この配列のためだけに、既存のソース コードを変更しますか?プロセスが複雑な場合は、わざわざ読みません。結果にはいくつかの変数があることだけがわかっているので、配列を作成したいと思います。それ以外の場合は、もちろん、配列として記述するだけです。







$a = 1;$b = 2;$c = 3;$t = array_diff_key(get_defined_vars(), array_flip(array('_GET', '_POST', '_COOKIE', '_FILES')));print_r($t);
かなり暴力的です
Array(    [a] => 1    [b] => 2    [c] => 3)

実際、compact を使用するには前提条件があります。少なくとも変数名を知っている必要があります

array_combine de を使用すると、元のメンバーの順序が崩れる可能性があります

そして、get_define_vars を使用して未知の変数を検出できます

$a = 1;$b = 2;$c = 3;$t = array_diff_key(get_defined_vars(), array_flip(array('_GET', '_POST', '_COOKIE', '_FILES')));print_r($t);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。