次のコードを使用して、「$」で始まるスクリプト内のすべての変数を一致させていますが、結果に重複が含まれないようにしたい、つまり、個別/一意である必要があります。
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
何かアドバイス?
次のコードを使用して、「$」で始まるスクリプト内のすべての変数を一致させていますが、結果に重複が含まれないようにしたい、つまり、個別/一意である必要があります。
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
何かアドバイス?
array_unique
出力配列から重複を削除するために使用します。
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
$variables = array_unique($variables[0]);
しかし、それで PHP を解析しようとしていないことを願っています。token_get_all
指定された PHP コードのトークンを取得するために使用します。
正規表現でそれをしないでください。それらをすべて に収集したら$variables
、通常のプログラミング ロジック/操作を使用してそれらをフィルタリングするだけです。array_unique
たとえば、ガンボが述べたように使用します。
また、これらの場合、正規表現は何をしますか:
// this is $not a var
foo('and this $var should also not appear!');
/* and what about $this one? */
3 つの「変数」( $not
、$var
および$this
) はすべて変数ではありませんが、正規表現によって一致します。
次のコードを試してください。
preg_match_all('/\$[a-zA-Z0-9]+/', $code, $variables);
$variables = array_unique($variables);