[php 코딩] 코딩 도사님은 이런 경우 어떻게 코딩하시나요?
일단 두 가지 예를 들어보겠습니다.
그 중에 어느 것이 바람직한 것인가요?
아니면 더 좋은 코딩 방법이 있다면 알려주시길 바랍니다.
코딩 조건문은 긍정문으로 하라고 하는데...
이런 경우는 다른 방법이 생각나지 않아 두 가지 방법만 알고 있습니다.
// 변수
$cname="홍길동마실";
$name1="갑순이";
$name2="에릭갑돌이";
$name3="홍길동마실||23.323.22";
// 코딩 1)
if($cname == $name1) echo "";
elseif($cname == $name2) echo "";
elseif(preg_match("/^$cname/", $name3)) echo "";
else echo "잘못된 회원정보1 입니다.";
//코딩 2
if($cname != $name1) {
if($cname != $name2) {
if(!preg_match("/^$cname/", $name3)) {
echo "잘못된 회원정보2 입니다.";
}
}
}
예전에 나를 도와준 마틴님이란 분이 있어 그분을 기억합니다.
2cpu의 도움주신 많은 분들께 늘 감사드립니다.
☎ HP 010-9678-7900
2cpu의 도움주신 많은 분들께 늘 감사드립니다.
☎ HP 010-9678-7900
case À¸·Î Çؼ
¸ÂÀ¸¸é break; ó¸®...
ÃÖÁ¾ÀûÀ¸·Î else µÇ¸é ¿¡·¯Ã³¸®...¤¾¤¾
case $name1: break;
case $name2: break;
case ($cname==$name3 || preg_match("/$cname\|+/", $name3) ? true : false): break;
default: echo "À߸øµÈ ȸ¿øÁ¤º¸ ÀÔ´Ï´Ù.";
}
´õ Á¤È®ÇÏ°Ô °íÃƽÀ´Ï´Ù.
case ¹®¿¡ preg_match¸¦ ³Ö¾î¼ ¾²´Â°ÍÀº ¿À´Ã ±¸±Û¸µÇؼ óÀ½ ÇغýÀ´Ï´Ù.¤¾¤¾
Á¶±Ý ¸Ó¸®¿¡ ¿ÀÌ ³µÁö¸¸ Àç¹Õ³×¿ä. ¤¾¤¾¤¾
https://stackoverflow.com/questions/38830349/preg-match-in-switch-case-in-php?noredirect=1&lq=1
Âü°íÇÑ ±ÛÀÔ´Ï´Ù.
¾Æ´Ï¸é $name1 $name2 $name3 À» ¹è¿º¯¼ö¿¡ ³Ö¾îµÎ°í
for ·çƾÀ¸·Î ó¸®Çؼ
ó¸®Çؼ continue ¸í·ÉÀ» »ç¿ëÇÏ´Â ¹æ¹ýµµ ÀÖ±ä Çѵ¥...
¾î¶»°Ô »ý°¢ÇÏ´ÂÁö¿ä?
$allow = array(¡°°©¼ø¡±, ¡°°©µ¹¡±, ¡°±æµ¿¡±)
function check_user($query, $allow) {
foreach ($allow as &$value) {
if ($value === $query || preg_match("/^$query/", $value) ): return True;
}
return False;
}
ÇÔ¼öÈ ÇÏ¿© »ó´çÈ÷ ¹ßÀüµÈ °³³äÀ̳׿ä.
¤¾¤¾ °¨»çÇÕ´Ï´Ù.
¾ÈÀüÇÑ Á¶°ÇÀ» À§ÇØ === ±îÁö »ç¿ëÇϼ̳׿ä ... ±ÂÀÔ´Ï´Ù.
----------------------------------
$cname="È«±æµ¿¸¶½Ç";
$name1="°©¼øÀÌ";
$name2="¿¡¸¯°©µ¹ÀÌ";
$name3="È«±æµ¿¸¶½Ç||23.323.22";
$allow_arr=array($name1, $name2, $name3);
function check_user($check_name, $allow_arr) {
foreach ($allow_arr as $value) {
if ($value === $check_name || preg_match("/^$check_name\|+/", $value) ) return True;
}
return False;
}
if(!check_user($cname, $allow_arr)) echo "not exist!";
https://stackoverflow.com/questions/6433492/preg-match-vs-strpos-for-match-finding
Çߴµ¥ °á±¹ ½ÇÆÐÇß½À´Ï´Ù
ÀÌ¿ëÇÏ½Ã¸é µÇÁö ¾ÊÀ»±î¿ä..
$cname = "È«±æµ¿¸¶½Ç1";
$name=array();
$name[] = "°©¼øÀÌ";
$name[] = "¿¡¸¯°©µ¹ÀÌ";
$name[] = "È«±æµ¿¸¶½Ç||23.323.22";
$check_user = function($arr, $f) {$r=0;array_walk($arr,function(&$v)use(&$r,$f){if(strpos($v,$f) === 0)$r=1;});return $r;};
if (!$check_user($name, $cname)) echo "not exist!";
Àû¿ë½ÃÄѺ¸´Ï ±ò²ûÇÏ°Ô Àß ÀÛµ¿ÇÕ´Ï´Ù.
´õ±¸³ª preg_match¸¦ »ç¿ëÇÏÁö ¾Ê¾Æ ¼Óµµ¸é¿¡¼´Â ´õ ºü¸£°Ô ÀÛµ¿ÀÌ µÉ °ÍÀ¸·Î º¸ÀÔ´Ï´Ù.
function(&$v) ¶ó°í Áß°£¿¡ &À» ³Ö´Â °ÍÀº¹«¾ùÀ» ÀǹÌÇÏ´ÂÁö ÀüÇô ¸ð¸£°Ú½À´Ï´Ù. ¤Ð¤Ð
°¡²û Çѹø¾¿ º¸´Âµ¥... ±Ã±ÝÇß½À´Ï´Ù.
º¸Åë ÀÌ·± °æ¿ì´Â ±Û·Î¹ú º¯¼ö·Î ¼±¾ðÇؼ »ç¿ëÇÏ´ø°¡
¾Æ´Ï¸é ±×³É return Çش纯¼ö; ·Î Çؼ »ç¿ëÇϴµ¥...
´õ Æí¸®ÇÑ ¹æ¹ýÀ̷২ä.
$haystack = array (
'say hello',
'hello stackoverflow',
'hello world',
'foo bar bas'
);
$matches = preg_grep ('/^hello (\w+)/i', $haystack);
print_r ($matches);
¸¶Áö¸·¿¡ matches ÀÇ length ¸¦ ±¸Çؼ 0À̸é Àִ°Űí 1À̸é Àִ°ű¸¿ä.ÀÖÀ¸¸é array ·Î ¹Ýȯµµ µÇ±¸¿ä
preg_grep °¡ ÀÖ´Ù´Â »ç½ÇÀº óÀ½ ¾Ë¾Ò½À´Ï´Ù.
ÃæºÐÈ÷ ÀÌÇØ°¡ µÇ°í °ø°¨ÀÌ µË´Ï´Ù.
¸ÚÁ®¿ä.
Çѹø¾¿ ÄÚµù À̾߱⸦ ¿Ã¸±¶§¸¶´Ù ¾ÆÁÖ ´Ù¾çÇÑ ¼Ö·ç¼ÇÀº Á¤¸» ³î¶ø½À´Ï´Ù.
length ´Â
echo count($matches);¸¦ ¸»ÇÏ´Â °ÍÀÌ°ÚÁö¿ä