1
戻り値タイプとの両方を指定する関数を作成して、use
にすることはできますか?戻り値タイプと "使用"キーワードを持つ関数
以下の例は間違っていますか、サポートされていませんか(まだ)?
<?php
$arr = ['test' => 'value'];
function test1() use ($arr) : string { // Line 5
return $arr['test'];
}
function test2() : string use ($arr) {
return $arr['test'];
}
エラーは次のとおりです。
Parse error: syntax error, unexpected 'use' (T_USE), expecting '{' in [PATH]\index.php on line 5
することができますrun the code here。
'use'キーワードは、calllng-context変数を* closure *に束縛するためのもので、function文で定義された関数はクロージャではありません。だからこそ、それは意味をなさないので単純に機能しません。おそらくこれをやろうとしているのですか?つまり、ここで最後のゲームは何ですか?それを明確にすることは、別のアプローチを思いつくのに役立つかもしれない。また、なぜ... PHPのような動的な緩やかなタイプのlangaugeでは、ローカル関数の型チェックを行うことが重要ですか?公表されたAPIなどの一部になるのではないのですか? –
ああ、もちろん。 'global'キーワードは私が探しているものです。私は以前にそれを実際に使ったことはないと思うので、私には起こりませんでした。理由:私は、名前空間ユーティリティ関数の長いリストを維持していて、それらを構成可能にしたかったのです。ネームスペースの一番上に配列をロードし、関数にアクセスできるようにすることは、私が考えるエレガントなソリューションです。誰かがヘルパークラスや依存関係を記述する前に、気にしないでください。私は大槌を必要としていません。私はメスを探しています。 –
私はこれらの提案はあなたが1つとして使用しようとしているような小さじよりもメスに近いと思っています;-)しかし、それぞれ自分自身に、ええ? –