<?php
function check($a, $b) {
if ( $a == $b ) {
echo "SAME";
} else {
echo "DIFFERNT";
}
}
check("PHP7", 7); // DIFFERNT
check("7PHP", 7) // SAME
?>
첫 번째 비교와 두 번째 비교는 모두 FALSE를 출력해야하지만 두 번째 출력에서 TRUE를 출력합니다.
그 이유는 문자열과 수치를 비교하면 문자열은 자동으로 수치로 형변환이 되기때문입니다.
따라서 조금 더 엄격하게 비교하기 위해서는 '===' 연산자를 이용합니다.
=== 연산자 사용
<?php
function check($a, $b) {
if ( $a === $b ) {
echo "SAME";
} else {
echo "DIFFERNT";
}
}
check("PHP7", 7); // DIFFERNT
check("7PHP", 7) // DIFFERNT
?>
strcmp() 사용
인자를 문자열로 바꿔 비교합니다.
strcmp ( string $str1 , string $str2 ) : int
비교 | 반환값 |
$str1 < $str2 | -1 |
$str1 = $str2 | 0 |
$str1 > $str2 | 1 |
<?php
function check($a, $b) {
if ( strcmp($a, $b) == 0 ) {
echo "SAME";
} else {
echo "DIFFERNT";
}
}
check("PHP7", 7); // DIFFERNT
check("7PHP", 7) // DIFFERNT
?>
strcasesmp() - 대소문자 구별 없이 비교
인자를 문자열로 변환하여 대소문자 구분없이 비교합니다.
<?php
function check($a, $b) {
if ( strcasecmp($a, $b) == 0 ) {
echo "SAME";
} else {
echo "DIFFERNT";
}
}
echo check("A12B", "a12b"); // SAME
?>
strncmp() - 부분 비교
처음에서 원하는 개수만큼 비교합니다.
strncmp ( string $str1 , string $str2 , int $len ) : int
비교 | 반환값 |
$str1 < $str2 | -1 |
$str1 == $str2 | 0 |
$str1 > $str2 | 1 |
<?php
function check($a, $b) {
if ( strncmp($a, $b) == 0 ) {
echo "SAME";
} else {
echo "DIFFERNT";
}
}
echo check("ABCD123", "ABCD456"); // SAME
echo strncmp("ABCD123", "ABCD456", 4); // 0
echo strncmp("ABCD123", "ABCD456", 5); // -1
echo strncmp("ABCD456", "ABCD123", 5); // 1
?>
반응형
'PHP > PHP7 예비학교' 카테고리의 다른 글
[PHP] 문자열이 포함되어 있는 개수 확인 - substr_count(), mb_substr_count() (0) | 2020.09.13 |
---|---|
[PHP] 문자열 검색 - strpos(), mb_strpos() (0) | 2020.09.13 |
[PHP] HTML 태그 제거 - strip_tags() (0) | 2020.09.13 |
[PHP] 공백 제거 - trim(), ltrim(), rtrim() (0) | 2020.09.13 |
[PHP] 대문자 변환 - strtoupper() 와 소문자 변환 - strtolower() (0) | 2020.09.13 |