0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

phpのarrayキャストで元々arrayが二重arrayになるわけではない

Last updated at Posted at 2020-05-17

すいません。マニュアルをよく読めば書いてあることです。

(array)の挙動を確認します。

  • 文字列から配列に展開されるか?
  • 配列は二重配列になるか?

phpのマニュアル


// 配列と文字は異なる値です
var_dump(["a"] === "a"); // false

// 文字が配列に変換され一致します
var_dump(["a"] === (array)"a"); // true

// 元から配列なら変換されません
// 配列で囲まれるわけではありません
// 型の変換なので、配列型は配列型のままでした
var_dump(["a"] === (array)["a"]); // true

// 配列と文字列なので当然異なる値です
var_dump(["a", "b", "c"] === "abc"); // false

// もしかして複数文字は配列に展開される? ["a", "b", "c"]
var_dump(["a", "b", "c"] === (array)"abc"); // false

// そんなわけありません。
// c言語のchar型の配列と間違っていました。
// 文字列を配列にキャストすると項目が1つの配列になりました。
var_dump(["abc"] === (array)"abc"); // true

// 元から配列なら変換されません
var_dump(["a", "b", "c"] === (array)["a", "b", "c"]); // true

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?