1

以下に配列を作成しました。

$email[] = $post[0];

$email[].= $post[2];

結果は次のとおりです。

$email = Array ( [JESSICA] => jessica.doe@laerdal.com ) 

次に、それを次のようにクラスコンストラクターに渡します。

$email_user = new Email($id,$email,$subject,$heading,$messages,$keys);

クラスは次のようになります。

class Email extends Users { 

protected $id;
public $strings;
public $user_email;
public $subject;
public $heading;
public $messages;
public $keys;

public function __construct($id,$user_email,$subject,$heading,$messages,$keys) {

parent::__construct($id);
$this->user_email = $user_email;
$this->subject = $subject;
$this->heading = $heading;
$this->messages = $messages;
$this->keys = $keys;

$ this-> user_emailが配列であるかどうかをテストする場合、以下を使用します。

if(is_array($this->user_email)) {
   echo "TRUE";
}

falseを返します。どうして?

*問題は、両方とも$emailという名前の変数との競合であることがわかりました。助けてくれてありがとう。

4

2 に答える 2

2

.=演算子の使用は、通常、2 つの文字列を連結するために使用されることに注意してください。

と言う$email[] = somevalueことで、基本的に値を任意に配列にプッシュしていることになります。最終的には次のようになります。

$email[] = $post[0];
$email[] = $post[2];
于 2012-05-10T14:47:41.160 に答える
0

試す:

public $user_email = array();

連結を削除します$email[].= $post[2]; $email[] = $post[2];。問題ありません。

于 2012-05-10T14:45:00.320 に答える