2017-03-17 81 views
1

我正在研究一個條件,我不明白,因爲其中一個條件默認設置爲true,之前沒有設置變量,有人告訴我這意味着什麼嗎?這個條件是什麼意思?

$pagina= Pagina::findOrFail($datos->idpagina); 
switch ($datos->tipodato) 
{ 
    case 'logo': 
    if(true) //?? 
    { 
     $datos->logo = urldecode($datos->logo); 
     $datos->logo = str_replace(' ', '+', $datos->logo); 
     $datos->logo = str_replace("data:image/png;base64,","",$datos->logo); 
     $datos->logo = str_replace("data:image/jpg;base64,","",$datos->logo); 
     $datos->logo = str_replace("data:image/jpeg;base64,","",$datos->logo); 
     $pagina->logo =$datos->logo; 
    } 
    else 
    { 
     $pagina->logo =$datos->logo; 
    } 


    $nombreimagen="img".$datos->idpagina.".png"; 
    file_put_contents(public_path()."/imagenes/{$nombreimagen}", 
     base64_decode($datos->logo)); 
    $pagina->archivologo=$nombreimagen; 

    break; 
+2

在'logo'的情況下,if語句被執行,其他的語句永遠不會被執行。儘管看起來不尋常/毫無意義的代碼 –

回答

2

這意味着if語句中的代碼總是被執行並且else-block內的代碼永遠不會被執行。

一個常見的原因是它曾經是一個基於變量的條件,但程序員已經停用了它,但保留了else語句使其更容易恢復。

2

if (true)手段,即當時的情況下,始終執行,你可以savely刪除else情況下(還有條件本身)。大多數情況下,這是插入調試案例或重構,有人忘了刪除多餘的條件。