1

PHP では、次のコードが有効です。

$a=array(0);$a[0];

しかし、それは無効です:

array(0)[0]
  1. その動作に対応する用語は何ですか? (「逆参照」と関係がありますか?)
  2. そのような行動の背後にある動機は何ですか (ユーザーの悪意以外に :-P)

PHP に関連する用語ではなく、一般的な用語を探しています。

(その他の例: MATLAB では、以下が有効です。

s = size(M)
s(0)

しかし、それは無効です:

size(M)(0)

PHP と MATLAB の両方で、括弧を追加しても役に立ちません。つまり、(array(0))[0]どちら(size(M))(0)も無効です)

4

2 に答える 2

3

これはArray dereferencingと呼ばれ、 PHP 5.4 (現在アルファ版) で利用可能になります。

(Gordon に感謝) : PHP 5.4 でもarray()1を使用することはできませんが、 functions では機能します


いくつかのソース:


その最後のニュースを引用する:

変更点の不完全なリストを以下に示します:
- 追加: Traits 言語構造
- 追加: 配列逆参照のサポート
- 追加: DTrace のサポート
- 改善: Zend Engine のメモリ使用量とパフォーマンスの改善
- 移動: ext/sqlite を pecl に移動 (sqlite3 のサポートは引き続きビルド-の)


1.array()関数のように見えても、関数ではありません。実際には、PHP が言語構造体と呼んでいるものです。それらは関数のように動作しません。

于 2011-07-23T12:52:52.227 に答える
1

これは「配列の逆参照」と呼ばれ、PHP5.4 で使用できるようになります。

于 2011-07-23T12:51:31.053 に答える