1
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 1 year has passed since last update.

zerofill型のコードマップのkeyの型には気を付けて

Posted at

zerofill型のコードマップのkeyの型には気を付けて

やっぱりコードマップだよね

俺はコウヘイ。エンジニアマスターを目指して開発修行の旅に出ている。DBのカラムのコードマップを作っていた時のお話。

MySQL< zerofillだぞ

僕< なるほど、0埋めね

僕< このカラムのコードマップをアプリケーションに組み込みぞ!

const MONSTER_CODE = [
    '01' => 'ドラゴン',
    '02' => 'スライム',
    '03' => 'おばけ',
    ...
    '99' => '吸血鬼',
];

僕< DBからfetchするとstringになるしkeyの型はstringにしておくか

上手くいかない分岐

僕< どうやらNo99は存在してはいけないモンスターらしい。分岐処理で表示を分けるか


foreach (BOKEMON::MONSTER_CODE as $key => $val) {
    if ($key === '03' || $key === '99') {
        $hideMonster[] = $key;
        continue;
    }
    $showMonster[] = $key;
}

var_dump($hideMonster); // ['おばけ']

僕< うわぁ!おばけだ!

吸血鬼が取れません。何故でしょうか。

$keyの型が、、、変わってる、、、

理由は以下。

var_dump(BOKEMON::MONSTER_CODE); 
/**
[
    '01',
    '02',
    '03',
    ...
    99,
];

PHP< int型で取れるときは勝手に変えちゃうよ

僕< うわあああああああああ

zerofill型トラップに気をつけろ

1
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
1
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?