programing

변수가 여러 문자열 값과 같지 않은지 확인하는 더 간단한 방법은 무엇입니까?

projobs 2021. 1. 18. 07:28
반응형

변수가 여러 문자열 값과 같지 않은지 확인하는 더 간단한 방법은 무엇입니까?


현재 코드 :

<?php

  // See the AND operator; How do I simplify/shorten this line?
  if( $some_variable !== 'uk' && $some_variable !== 'in' ) {

    // Do something

  }

?>

과:

<?php

  // See the OR operator; How do I simplify/shorten this line?
  if( $some_variable !== 'uk' || $some_variable !== 'in' ) {

    // Do something else

  }

?>

두 조건을 작성하는 더 간단한 (즉, 더 짧은) 방법이 있습니까?

참고 : 예, 그것들은 다르며 코드를 줄이는 다른 방법을 기대하고 있습니다.


첫 번째 코드의 경우, 짧은 변경 사용할 수 있습니다 @ShankarDamodaran에 의해 주어진 대답 사용하여 in_array():

if ( !in_array($some_variable, array('uk','in'), true ) ) {

또는 []주석에서 @Forty가 지적한 것처럼 PHP 5.4 이후 표기법을 사용할 수 있습니다.

if ( !in_array($some_variable, ['uk','in'], true ) ) {

와 같다:

if ( $some_variable !== 'uk' && $some_variable !== 'in' ) {

...하지만 더 짧습니다. 특히 'uk'와 'in'보다 더 많은 것을 비교한다면. 추가 변수 ( Shankar used $ os )를 사용하지 않고 대신 if 문에서 배열을 정의합니다. 어떤 사람들은 그게 더럽다고 생각할 수도 있고, 나는 그것이 빠르고 깔끔하다고 생각합니다 : D

두 번째 코드의 문제점은 다음과 같은 이유로 TRUE로 쉽게 교환 할 수 있다는 것입니다.

if (true) {

같음

if ( $some_variable !== 'uk' || $some_variable !== 'in' ) {

문자열의 값이 A가 아닌지 B가 아닌지 묻는 것입니다. A이면 B도 아니고 B이면 A도 아닙니다. 그리고 C이거나 말 그대로 다른 것이면 또한 A가 아니고 B가 아닙니다. 따라서 그 진술은 항상 ( 여기에서 슈뢰딩거 법을 고려하지 않음 ) 참을 반환합니다.


in_array()PHP에서 사용할 수 있습니다 .

$os = array("uk", "us"); // You can set multiple check conditions here
if (in_array("uk", $os)) //Founds a match !
{
    echo "Got you"; 
}

if 문에서 함수를 만들 계획이라면 in_array를 사용하는 것도 좋습니다. 훨씬 깨끗합니다.

변수에 값을 할당하려는 경우 if / else 약식을 사용할 수 있습니다.

$variable_to_fill = $some_variable !== 'uk' ? false : true;

다중 값 확인이 필요합니다. 다음 코드를 사용해보십시오.

<?php
    $illstack=array(...............);
    $val=array('uk','bn','in');
    if(count(array_intersect($illstack,$val))===count($val)){ // all of $val is in $illstack}
?>

일부 기본 정규식은 트릭을 잘 수행합니다. $some_variable !== 'uk' && $some_variable !== 'in':

if(!preg_match('/^uk|in$/', $some_variable)) {
    // Do something
}

ReferenceURL : https://stackoverflow.com/questions/19949923/simpler-way-to-check-if-variable-is-not-equal-to-multiple-string-values

반응형