3

次のコードで警告を受け取ることは可能ですか?

error_reporting(E_ALL);

  $s = array(
      'a' => '1',
      'a' => '1'
   );

var_export( $s );
4

2 に答える 2

1

あなたの唯一の望みは(あなたcount自身を-することは別として)あなたの編集者がタイプミスを強調するのに十分賢いということです。このスクリーンショットはPHPStormからのものです:

ここに画像の説明を入力してください

于 2012-12-12T10:39:31.767 に答える
0

この場合、標準の配列を使用して実際にエラーをスローすることはできません。ただし、プロパティを更新/再宣言するときに、SPL ArrayObjectの拡張を確認し、エラーをスローすることができます。

更新:そのようなもの:

class MyStrictArray extends ArrayObject
{
    public function offsetSet($index, $value)
    {
        if ($this->offsetExists($index)) {
            trigger_error("Can't redeclare a property", E_USER_ERROR);
            return;
        }

        return parent::offsetSet($index, $value);
    }
 }

 // and to use it.
 $array = new MyStrictArray();
 $array['a'] = 'foo';
 $array['a'] = 'bar'; // triggers error
于 2012-12-12T10:34:34.110 に答える