13

メッセージを含む配列を作成したい。

$myArray = array('my message');

ただし、このコードを使用myArrayすると、既に存在する場合は上書きされます。

を使用する場合array_pushは、既に存在している必要があります。

$myArray = array(); // <-- has to be declared first.
array_push($myArray, 'my message');

そうしないと、ビンクします。

最初にクリアせずに、上記の 2 番目の例を機能させる方法はあり$myArray = array();ますか?

4

5 に答える 5

35

ここ:

$myArray[] = 'my message';

$myArray は配列であるか、設定されていない必要があります。arrayaccess を実装していない文字列、整数、またはオブジェクトの値を保持している場合、失敗します。

于 2008-12-08T21:43:25.067 に答える
7

最初に配列が存在するかどうかを確認し、存在しない場合は作成します...次に、配列が確実に事前に定義されることを知って、要素を追加します。

if (!isset($myArray)) {
    $myArray = array();
}

array_push($myArray, 'my message');
于 2008-12-08T21:47:06.930 に答える
3

isset ではなく、is_array() を使用する必要があります。配列または文字列を返す関数から myArray が設定されている場合に便利です (たとえば、エラーの場合は -1)。

これにより、myArray が別の場所で非配列として宣言されている場合にエラーが防止されます。

if(is_array($myArray))
{
   array_push($myArray,'my message');
}
else
{
   $myArray = array("my message");
}
于 2008-12-08T21:57:12.930 に答える
0
if ($myArray) {
  array_push($myArray, 'my message');
}
else {
  $myArray = array('my message');
}
于 2008-12-08T21:48:07.380 に答える
0

OISの方法は機能します。

または

if (!isset($myArray)) 
    $myArray=array();
array_push($myArray, 'message');
于 2008-12-08T21:48:39.580 に答える