2012-04-20 3 views
1

난 그냥 궁금 해서요 :이 논리 연산자에 대한 바로 가기가 있습니까? 이 예제 같은 것을 할 수있는 바로 가기가있는 경우

if (isset($_POST['name']) && $_POST['name'] == 'George' || $_POST['name'] == 'Mike'); 

[편집] : 문제는 내가 "나는 모든 일을하고 있기 때문에 물어 무엇을 의미하는지 처음에는 모호한 듯하지만 경우 죄송합니다 동일한 변수에 대한 이러한 검사는 세 번 쓰지 않는 더 좋은 방법입니까? "

은 쉽게 드문 방법 및 ..

  1. 중첩 청소기보다가있다.
  2. 위의 구문보다 짧습니까?
  3. (Ruby, C# 또는 PHP)에서 주로 3 개 언어를 사용하기 때문에.

위의 질문과 같이 중첩 된 if 또는 long 논리 연산을 작성하는 것에 지쳐있었습니다.

당신은 포스트 데이터를 얻기위한 함수를 정의 할 수
+5

때 것 빈 ($ _ POST는 [ '이름']) 지금까지 거짓 경우 $ _POST [ '이름! '] =='무언가 '가 사실입니까? 네가 여기서 무엇을 요구하는지 모르겠다. – aquinas

+0

죄송합니다. 저는 같은 변수에 대해 많은 작업을 수행하는 예제를 작성했습니다. 좀 더 실용적인 것으로 편집 할 것입니다. –

+1

@aquinas : 게시물이 '0'이면 ... '비어있는 것으로 계산되는 몇 가지가 있습니다.)'라고 불렀다. –

답변

2

:

function getPOST($name) { 
    return isset($_POST[$name]) ? $_POST[$name] : null; 
} 
존재하지 않는 배열 필드 및 결과에 액세스하는 방법에 대한 통지를 표시하지 않습니다 기능은 쉽게 예에서 값 목록에 비교 될 수

:

if (in_array(getPOST('name'), array('George', 'Mike')) { 

} 
+0

그래, 내가 "뭔가"이러한 언어의 핵심 libs에 내장 된 아니라고 생각, 내가 때만 구글 질문 양식을 어떻게 해야할지 모르겠 물어, 감사합니다. –

+0

귀하의 사양에 맞도록 제 질문을 수정했습니다. – Yogu

0

사용 isset 만들기 위해 반드시 값은 실제로 거기에 뭔가를 확인하지 NULL 다음 strlen입니다.

if(isset($_POST['name']) && strlen($_POST['name']) > 0) 
{ 
    //Do stuff 
} 
1

귀하의 질문을 이해했는지 확실하지 않지만 특정 변수를 일련의 값과 비교하고자하는 것 같습니다. 다음을 수행 할 수 있습니다.

  1. 모든 값을 배열에 넣습니다.
  2. 변수가 설정되어 있는지 확인하십시오.
  3. in_array 함수를 사용하면 변수 값이 값 배열에 있는지 확인할 수 있습니다.
0
function post_data($key){ 
    if(isset($_POST[$key]) && $_POST[$key]!='') return $_POST[$key]; 
    return null; 
} 

$possible_names = array('George', 'Mike'); 

if(in_array(post_data('name'), $possible_names)) {} 
0

음, 문제는 매우 일반적이다. 어떻게 동일한 변수 이름을 여러 번 사용할 수 없습니까? 글쎄, 당신의 코드는 어떻게 생겼고 나는 당신에게 말할 것입니다. 일반에서는 대답 할 수있는 질문이 아닙니다.

string x = "foo"; 
if (new string[]{"bar","baz","foo","foobar"}.Contains(x)) .... 

또는 :

public static class Extensions { 
     public static bool In<T>(this T needle, params T[] haystack){ 
      return haystack.Contains(needle); 
     } 
    } 


string x = "foo"; 
if (x.In("bar", "baz", "foo", "foobar")) { 
0

심포니 1.4 프레임 워크는 노력의 문제를 해결하기 위해 sfParameterHolder을 활용 요소 여부를 확인하려면 예를 들어, 경우에, 당신은 (C#에서) 이런 일을 할 수 배열에 있습니다.

프로젝트에서 sfParameterHolder의 기능을 복사/복제하여 약간 정리할 수 있습니다.

구문에서 해당 조건의 모든 값을 정리하려면 switch 문을 사용할 수도 있습니다.

최종 결과는 다음과 같이 보일 수 있습니다 :

$post = new sfParameterHolder($_POST); 

switch($post->get('name')) 
{ 
    case 'george': 
    case 'mike': 
    // Do something. 
    break; 
} 
1

루비를

if $_POST['name'] && ['George', 'Mike'].include?($_POST['name']) 
관련 문제