説明
PHPには構文にいくつかの穴があり、開発時にプログラマーがそれらに介入することがあります。これらの構文の穴は理由もなく存在するように見えるため、これは多くのフラストレーションにつながる可能性があります。たとえば、配列を簡単に作成して、同じ行にあるその配列の任意の要素にアクセスすることはできませfunc1()[100]
ん(有効なPHP構文ではありません)。この問題の回避策は、一時変数を使用してステートメントを2行に分割することですが、非常に冗長で不格好なコードになる場合があります。
チャレンジ
私はこれらの穴のいくつかを知っています(もっとあると確信しています)。コードゴルフスタイルは言うまでもなく、解決策を思いつくことすら非常に困難です。勝者は、4つの構文ホールすべての合計文字数が最も少ない人です。
ルール
- ステートメントは、次の形式の1行である必要があります。
$output = ...;
ここで、...
は含まれていません;
。 - 標準ライブラリ関数のみを使用してください(カスタム関数は使用できません
eval
) 。 - ステートメントは、機能しない構文の想定される機能と同じように機能します(失敗した場合でも)。
- ステートメントは、。を使用して、いかなる種類の構文エラーも発生せずに実行する必要があります
E_STRICT | E_ALL
。
構文の穴
$output = func_return_array()[$key];
-関数の返された配列の任意のオフセット(string
または)にアクセスするinteger
$output = new {$class_base.$class_suffix}();
-新しいクラスを作成するために使用されている任意の文字列連結$output = {$func_base.$func_suffix}();
-関数として呼び出される任意の文字列連結$output = func_return_closure()();
-別の関数から返されるクロージャを呼び出す