strcmp ํจ์ ์์ฒด๋ PHP์์ ์์ ํ๊ฒ ๋ฌธ์์ด์ ๋น๊ตํ๋ ํจ์์ด๋ค.
PHP์์ strcmp ํจ์๋ ๋ ๋ฌธ์์ด์ ๋น๊ตํ์ฌ ๊ฐ์ผ๋ฉด 0์, ๋ค๋ฅด๋ฉด 0์ด ์๋ ๊ฐ์ ๋ฐํํ๋ค.
(strcmp($a, $b) ๋ฅผ ์คํ ํ ๋, $a๊ฐ ์์ผ๋ฉด ์์, $b๊ฐ ์์ผ๋ฉด ์์, ๊ทธ๋ฆฌ๊ณ $a์ $b๊ฐ ๊ฐ์ผ๋ฉด 0 ์ด ๋ฐํ)
์ด ํจ์๋ ๋ฌธ์์ด์ ๊ฐ๊ณผ ํ์ ์ ์๊ฒฉํ๊ฒ(strict) ๋น๊ตํ๋ค.
ํ์ง๋ง strcmp๋ ์ธ์๊ฐ์ผ๋ก ๋ฌธ์์ด์ด ๋ค์ด์ค์ง ์์ ๊ฒฝ์ฐ(๋ฐฐ์ด๋ก ์ธ์๊ฐ์ ์ฃผ๊ฒ ๋ ๊ฒฝ์ฐ), NULL์ ์ถ๋ ฅํ๋ ์ทจ์ฝ์ ์ ๊ฐ์ง๊ณ ์๋ค.
์์
GET ๋ฐฉ์์ผ๋ก ์์ฒญ์ ๋ฐ์ admin์ธ์ง ์๋์ง ํ์ธํ๋ ์ฝ๋๊ฐ ์กด์ฌํ ๋,
test = 1์ ์ฃผ๋ฉด no๋ฅผ ์ถ๋ ฅํด์ฃผ๊ณ test=admin์ ์ ๋ ฅํ๋ฉด yes๋ฅผ ์ถ๋ ฅํ ๊ฒ์ด๋ค.
<?php
$test = $_GET['test'];
if(!strcmp($test,"admin")){
echo "yes";
}
else{
echo "no";
}
?>
(php 7.1 ๋ฒ์ ์์ ํ ์คํธ: http://phptester.net/)
์ด๋ test๋ผ๋ ๋ฐฐ์ด ๋ณ์์ ๊ฐ์ ๋ฃ์ด์ค ๋ค strcmpํจ์๋ก admin๊ณผ ๋น๊ตํ๋ฉด yes๋ผ๋ ๊ฐ์ด ์ถ๋ ฅ์ด ๋๋ค.
๋ถ๋ช admin๊ฐ์ ์ฃผ์ง ์์๋๋ฐ๋ yes๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
<?php
$test = Array('asdfasdf');
if(!strcmp($test,"admin")){
echo "yes";
}
else{
echo "no";
}
?>
์ค์ ๋ก var_dump ๋ฅผ ์ด์ฉํด์ strcmp($test, "admin") ์ ๋ฆฌํด๊ฐ์ ๋ณด๋ฉด, test ๋ณ์๊ฐ ๋ฐฐ์ด์ผ ๋ strcmp ๊ฒฐ๊ณผ๊ฐ null๊ฐ์ผ๋ก ์ถ๋ ฅ์ด ๋๋ค.
๊ทธ ์ด์ ๋ strcmp ์ธ์๊ฐ์ผ๋ก ๋ฌธ์์ด์ด ๋ค์ด์ค์ง ์์๊ธฐ ๋๋ฌธ์ ํจ์์ ๊ฒฐ๊ณผ๋ก NULL์ ๋ฆฌํดํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
<?php
$test = Array('asdfasdf');
var_dump(strcmp($test,"admin"));
var_dump(!strcmp($test,"admin"));
var_dump(strcmp($test,"admin") == 0);
?>
์ด๋ NULL๊ณผ 0์ == ์ฐ์ฐ์ ํ๊ฑฐ๋ !NULL (NULL == false)๋ฅผ ํ๊ฒ ๋๋ฉด TRUE๊ฐ ๋์ค๊ฒ ๋๋ค.
๋ฐ๋ผ์, strcmp๋ก ์ด๋ค ๋ฌธ์์ด์ ๋น๊ตํ๊ฒ ๋๋ค๋ฉด ๋ฐฐ์ด ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ฉด ์ฐํ๊ฐ ๊ฐ๋ฅํ๋ค.