基本的なことですがわかっていなかったので調べてみました。
先に結論を書きますと
####"==="は値とデータの型が完全に一致している場合
####"=="は値のみ一致している場合
ということでした。
###例
$array = ["15", 15];
var_dump($array);//出力:array(2){[0] => string(2) "15", [1] => int(15)}
// 例1
foreach ($array as $v) {
if($v === 15){
echo "YES" . " ";
}else{
echo "NO" . " ";
}
}
//出力:NO YES
// 例2
foreach ($array as $v) {
if($v == 15){
echo "YES" . " ";
}else{
echo "NO" . " ";
}
}
//出力:YES YES
データの型はstring=文字列, int=整数のことを表しています。
例1の条件式は$v === 15 なのでint(整数)の15の場合のみ"YES"、それ以外は"NO"を表示するので
出力:NO YES となります
例2の条件式は$v == 15 なのでint(整数)、string(文字列)関係なく15の場合に"YES"を表示するので
出力:YES YES となります
こちらの記事でさらに詳しくわかりやすい説明をされていたので、深堀したい方はこちらをご覧になってみてください。
参考:https://qiita.com/atsushi586/items/adca2368d9a760ad862d