3v4l.org

run code in 300+ PHP versions simultaneously
<?php // よくある変数宣言と代入の例 $a = 17; // グローバルスコープに現在定義されているすべての変数への参照を含む連想配列である $GLOBALS から $a を見る // @see https://www.php.net/manual/ja/reserved.variables.globals.php echo '$a: '.$GLOBALS['a']."\n"; // $a: 17 // $0 を作る例 // $0 = 31; // ←は文法エラーとなります。 // 次リンクには" 有効な変数名は文字またはアンダースコアから始まり、任意の数の文字、 数字、アンダースコアが続きます"とあります。 // https://www.php.net/manual/ja/language.variables.basics.php // $0 がグローバルスコープにないことを確認 var_dump(isset($GLOBALS[0])); // bool(false) // 可変変数で変数名として 0 を使います $varName = 0; $$varName = 31; // $0 がグローバルスコープに増えたことを確認 var_dump(isset($GLOBALS[0])); // bool(true) echo '$0: '.$GLOBALS[0]."\n"; // $0: 31 // グローバルスコープ参照 echo '$0: '.$$varName."\n"; // $0: 31 // 可変変数参照 echo "$0: ${$varName}\n"; // $0: 31 // 可変変数的文字列中の変数のパース https://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing echo "$0: ${0}\n"; // $0: 31 // 直打ち的文字列中の変数のパース https://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing // また、上の $0 同様にこれを利用して定義済み変数の $GLOBALS とは別のグローバルスコープ下にある $GLOBALS を作れます。 // $GLOBALS が通常のグローバルスコープ下にないことを確認 var_dump(isset($GLOBALS['GLOBALS'])); // bool(false) $varName = 'GLOBALS'; $$varName = 47; // $GLOBALS が通常のグローバルスコープ下に増えたことを確認 var_dump(isset($GLOBALS['GLOBALS'])); // bool(true) echo '$GLOBALS: '.$GLOBALS['GLOBALS']."\n"; // $GLOBALS: 47 // 通常のグローバルスコープ参照 echo '$GLOBALS: '.$$varName."\n"; // $GLOBALS: 47 // 可変変数参照 // 文字列宙の変数のパースでは可変変数的に呼び出すか定義済み名そのもので呼び出すかで挙動が変わります。 // 可変変数的に文字列中の変数のパース echo "\$GLOBALS: ${$varName}\n"; // $GLOBALS: 47 // 定義済み名そのもので文字列中の変数のパース echo "\$GLOBALS: ${'GLOBALS'}\n"; // Warning: Array to string conversion in xxx // $GLOBALS: Array
Output for git.master, git.master_jit, rfc.property-hooks
Deprecated: Using ${expr} (variable variables) in strings is deprecated, use {${expr}} instead in /in/2nUnl on line 22 Deprecated: Using ${expr} (variable variables) in strings is deprecated, use {${expr}} instead in /in/2nUnl on line 23 Deprecated: Using ${expr} (variable variables) in strings is deprecated, use {${expr}} instead in /in/2nUnl on line 38 Deprecated: Using ${expr} (variable variables) in strings is deprecated, use {${expr}} instead in /in/2nUnl on line 40 $a: 17 bool(false) bool(true) $0: 31 $0: 31 $0: 31 $0: 31 bool(false) bool(true) $GLOBALS: 47 $GLOBALS: 47 $GLOBALS: 47 Warning: Array to string conversion in /in/2nUnl on line 40 $GLOBALS: Array

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
15.72 ms | 407 KiB | 5 Q