php 에서 다음과 같은 조건을 가장 효과적으로 표현하는 방법은 무엇일까요?
$var 가 "ibm", "ms", "apple" 중 하나일 경우 참이다2차방정식에서 근의공식을 이용하여 근을 구하듯,
본능적으로,
$var = "ms";
if($var == 'ibm' || $var == 'ms' || $var == 'apple')
{
}
if($var == 'ibm' || $var == 'ms' || $var == 'apple')
{
echo "ok";}
이런 모습을 떠올리시겠지만, 셋 중 하나가 아니라 열개 중 하나만 되더라도 소스코드가 상당히 지저분해집니다.
SQL 에서는 where fieldname in ('ibm', 'ms', 'apple') 과 같은 깔끔한 구문을 지원하고 있지만, php 에는 아쉽게도 이런 문법구조가 없죠;
간단하게 함수를 이용해보면, 다음과 같이 간단하게 표현할 수도 있겠죠,
방법 1.
$var = "ms";
$list = "ibm, ms, apple";
if(eregi($var, $list))
{
}
$list = "ibm, ms, apple";
if(eregi($var, $list))
{
echo "ok";}
방법 2.
$var = "ms";
$list = "ibm, ms, apple";
if(substr_count($list, $var))
{
}
$list = "ibm, ms, apple";
if(substr_count($list, $var))
{
echo "ok";}
하지만 이 방법1,2 모두 $var 가 "m, m" 와 같은 $list 의 일부일 경우에도 참이되기 때문에 문제가 있습니다.
그래서 배열과 함수를 이용하여 다음과 같이 표현할 수 있죠
방법 3.
$var = "ms";
$list = array("ibm", "ms", "apple");
if (in_array($var, $list))
{
echo "ok";
}더욱 좋은 표현이 있을까요?
'Computer > 기술적주제' 카테고리의 다른 글
| Namespace 퀴즈(C vs Java) (2) | 2008/03/26 |
|---|---|
| [php] the Best expression of Condition (0) | 2007/11/16 |
| [CSS] className (0) | 2007/10/12 |
| [CSS] 레이어 중앙으로 정렬 (0) | 2007/10/11 |
| [Javascript] 마우스 포인터가 레이어를 떠날 때 레이어닫기 (0) | 2007/10/11 |
| Oracle의 rownum 과 Mysql의 limit 비교 (2) | 2007/03/04 |
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


이올린에 북마크하기
이올린에 추천하기



