세 연산자를 사용하여 $x
을 어떻게 증분 할 수 있습니까?PHP 삼항 연산자로 값 올리기
나는 $x = $x==2 ? 0 : ++;
을 시도했지만 분명히 작동하지 않았습니다.
if($x == 2){
$x=0;
}else{
$x++;
}
감사합니다.
세 연산자를 사용하여 $x
을 어떻게 증분 할 수 있습니까?PHP 삼항 연산자로 값 올리기
나는 $x = $x==2 ? 0 : ++;
을 시도했지만 분명히 작동하지 않았습니다.
if($x == 2){
$x=0;
}else{
$x++;
}
감사합니다.
할 수있는 가장 좋은 방법이 될 것이다 :
$x = $x === 2 ? 0 : $x+1;
당신이 주장하면 바로 VAR 증가하는 원을 사용하여 :
$x += $x === 2 ? $x*(-1) : 1;//or hard-code -2 instead of $x*(-1)
을 이 경우 1을 $x
에 추가하거나 012를 추가합니다.에서 $ x ($x + (-$x)
은 0)입니다. 그러나 전체적으로, 나는 (특히 PHP에서) 가능한 한 많은 것을 피해야한다고 덧붙이고 싶다. 이 경우, 서면 :
if (++$x === 3)
{
$x = 0;
}
정확히 같은 일을,하고 많은 더 좋은 보는가하지만,하지 훨씬 더 코드입니다. 그럼에도 불구하고, if 문에서 증가 미리 최선의 증가, 여전히 혼란, 또는 :
$x = $x === 2 ? -1 : $x;
$x++;
당신은 ternaries에 대한 이상한 취향을 가지고있어 ... 그리고 가있는 경우이 액형로 라이너 :
$x = ($x ===2 ? -1 : $x) +1;
작품, 너무 ...하지만
코드 골프 사이트에 대해 알려 주셔서 감사합니다. – user933791
왜 그것을 위해 모듈 연산자를 사용하지 않는 ... 사물의 이러한 종류의 code-golfing site있다?
$x = ++$x % 2;
OP의 코드에서'$ x = ++ $ x % 3'을 원한다면 x는 0,1,2가 될 수 있습니다. –
실제로'x'가 다른 곳의 어딘가에 3을 설정하면이 모듈러 연산자는 다른 결과를 줄 것입니다. 그러나 그것은 OP가 실제로 원하는 것 (로직의 버그 일 수 있습니다!)에 이릅니다. –
왜 $ x ++가 작동하지 않습니까? 설명을 찾을 수 없습니다 ... 사전 증가가 작동하고 게시 증분이 어떻게 될 수 있습니까? – greg
@ 집합 :'++ $ x'는 값을 증가시킨 후'$ x'에 할당하고'$ x ++'는'$ x'를 먼저 할당하고 *는 * 값을 증가시킵니다. –
답변을 주셔서 감사합니다,하지만 난 아직도 그것을 얻을 수 없어 ... 두 경우 모두 두 가지 작업을 수행합니다. $ x == 2가 false라는 것을 알았 기 때문에$ x ++를 실행하면 $ x = 1이 할당되고 값이 증가하므로 $ x = 2 ... 끝에 있습니다. 나는 여전히 $ x = 2를 가져야 만한다. ++ $ x는 값을 2로 증가시키고 $ x에 할당 할 것이다. 그럼 다시, $ x = 2입니다. 다음과 같은 경우 ++ $ y와 $ y ++의 차이를 이해할 수 있습니다 : $ x = ($ x == 2)? 0 : $ y ++ => $ x = 1 및 $ y = 2 $ x = ($ x == 2)? 0 : ++ $ y => $ x = 2 and $ y = 2 – greg