2011-08-02 8 views
-2

このPHPコードは何を意味しますか?

is_array($data) OR $data = (array) $data 

は、私はそれがに等しいPyroCMS

答えて

3

ORは短絡オペレータです。左側がtrueの場合、右側は評価されません。基本的には「$dataが配列でない場合は配列にキャストします」と表示されます。これは、同じ効果を有する

$data = (array)$data; 

:これはかなり冗長であり、と略記することができること

注意。既に配列の場合、配列へのキャストは何もしません。それ以外の場合は配列へのキャストが行われます。

+0

これはまた、配列$ dataが存在することを保証します(あなたのバージョンと同じですが、言及する価値があると思います)。 – vascowhite

+0

@vascowhiteはい、それは間違った方法ですが、変数*が存在しない場合はPHPから2つの通知が返されるため、そのことを保証するのは間違いです。 – deceze

+0

「短絡」というキーワードに感謝します。それは非常に役に立ちます。私は実際にそれがPHPで行われることを知りません – Permana

0

にこのコードを参照してください。

if (!is_array($data)) $data = (array) $data 
1

それは$データが配列であるかどうかをテストし、そうでない場合は、1つにそれをキャストします。

0

それは執筆の(私の意見ではひどい)ハック方法です。基本的に配列する$データ変数を強制され

if(!is_array($data)) { 
    $data = (array) $data; 
} 

このようなコードは作成しないでください。処理(精神的)が難しく、時間を節約することはできません。 :-)

関連する問題