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?

PHP勉強メモ20250201(foreachのindex, !==と!=)

Last updated at Posted at 2025-02-01

概要

仕事でたまにPHPを書く機会が生じているが、頻繁に書くわけでないし、Copilotで自動補完してもらってしまっていることもありなかなか身につかない。本当に今さら?というような基礎的な内容になるが、調べた内容を備忘のためにメモする。

foreachでindexもとる

foreach($nums as $index => $value){
    //処理
}

この場合、$nums が配列、 $value が取り出される要素、 $index がindexになる。これ何回も見ているのだけど、いつも自分で書くとなると調べてしまう。

配列にその要素が存在するか確認して、存在したらindexを返す

存在しなかったらfalseを返す

$key = array_search($target,$array);

!= と !==

=== はデータ型まで含めて一致しているかみる、というところまではわかるのだが、
==だと0とnullとfalseと一致扱いになるそう。(つまり、0 == false はtrueになる。)empty も 0はtrue扱いだし本当に0の扱いがよくわからない...。
つまり、上記の array_search でindex=0の要素が当てはまった場合、 != で比較してしまうと、一致する要素がない扱いになってしまう。(そもそも存在しなかったらfalseじゃなくて-1とかを返してほしいと思ってしまうのは私だけ?)

// 誤り
$key = array_search($target,$array);
if($key != false){
    // これだと$key=0の時、ifの中に入らない
}

// 正しい
$key = array_search($target,$array);
if($key !== false){
    // これだと$key=0の時、ifの中に入る
}

この記事がわかりやすい。
https://blog.katty.in/51

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?