변수가 여러 문자열 값과 같지 않은지 확인하는 더 간단한 방법은 무엇입니까?
현재 코드 :
<?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
'programing' 카테고리의 다른 글
ScrollViewer 마우스 휠이 작동하지 않습니다. (0) | 2021.01.18 |
---|---|
교리 배열 대 simple_array 대 json_array (0) | 2021.01.18 |
matplotlib (python)에서 글꼴을 변경하는 방법은 무엇입니까? (0) | 2021.01.18 |
구조체에서 벡터 벡터를 초기화하는 방법은 무엇입니까? (0) | 2021.01.18 |
반응 구성 요소가 마운트 해제되었는지 확인하는 방법이 있습니까? (0) | 2021.01.18 |