2016-11-19 1 views
-1

변수가 설정된 경우 변수를 새 이름으로 전달하려고하거나 첫 번째 변수가 설정되지 않은 경우 POST 변수를 가져옵니다.PHP - 변수가 설정되지 않은 경우, 변수를 가져옵니다.

이 내 코드이지만 작동하지 않습니다 : 어떻게이 문제를 해결할 수

if (isset($randombg)) { 
    $background = $randombg;  
} else { 
    $background = $_POST['bg']) 
}; 

무슨 잘못되거나?

+0

를 바랍니다 읽을 수있는 그것에 대해 더, 실제로 일어나는 일로'작동하지 않습니다 '라고 대신 할 수 있습니까? 메시지 나 오타가 있니? – sensorario

+0

내 솔루션을 확인 했습니까? –

답변

1

코드에 오타가 있습니다. ) $background = $_POST['bg'])에 세미콜론

당신이 작동합니다을이 :

$defaultbg = '#FFFFFF'; 

if (isset($randombg)) { 
    $background = $randombg;  
} elseif(isset($_POST['bg'])) { 
    $background = $_POST['bg']; 
    }else{ 
     $background = $defaultbg; 
     } 
+1

좋은 캐치')'^ _^ – sensorario

0

Mauybe $의 randombg가 null 또는 비어있는 (즉, 설정되지 않았 음을 정확히 의미하지 않는다).

이 시도 :

if ($randombg) { 
    $background = $randombg;  
} else { 
    $background = $_POST['bg']; 
} 

아니면 Lite 버전 구문 :

$background = null == $randombg 
    ? $_POST['bg'] 
    : $randombg; 
+0

제발, 두 번째하지 마십시오. "왜이 코드가 작동하지 않는가?"라는 거대한 소스의 크기가 너무 크다. – Qrchack

+1

왜이 sytax가 아닌가? 읽는 것이 훨씬 편하며 한 줄에 쓰면 훨씬 더 짧습니다. –

+0

개발자가 오류를 읽을 수 없기 때문에 코드가 작동하지 않는 경우가 있습니다. – sensorario

0

[특징] PHP의 7.0.x +

것은 당신이 당신이 할 수있는 PHP의 7.0.x +를 사용하는 경우를 다음 구문을 사용하십시오.

$background = $randombg ?? $_POST['bg']; 

이 경우 $background은 설정된 첫 번째 변수에서 값을 가져 오며 null이 아닙니다. 코드

당신은 당신의 코드에서 구문이 소개하는 기능에 대한

$background = $randombg ?? $_POST['bg'] ?? 'No background given'; 
// if $randombg and $_POST['bg'] will be not set or null $background will become 'No background given' 

더 당신이 PHP RFC: Null Coalesce OperatorPHP: New Features

에서 읽을 수 있습니다

이 같은도 뭔가를 할 수 있습니다.

$background = (isset($randombg)) ? $randombg : $_POST['bg']; 

다음과 같이 작동 : : 또한 짧은 구문을 사용할 수 있습니다

if (isset($randombg)) { 
    $background = $randombg;  
} else { 
    $background = $_POST['bg']) // you have syntax here, delete) 
} 

아래에 더 많은 정보

$background = (condition) ? 'when true' : 'when false'; 

당신이 here (Shorthand if/else)

관련 문제