2017-04-07 48 views
0

我對php不太熟悉。抱歉,如果已經發布,請致電 我使用以下代碼設置每個頁面的標題。 的config.php有 - >每個頁面不同標題的php break語句

$pag = $_SERVER['PHP_SELF']; 
    switch ($pag){ 
    case '/artist.php': 
    $title= $db->query('select name from artist'); 
    $description = $db->query('select des from artist'); 
    break; 

    case '/album.php': 
    $title= $db-query('select name from album'); 
    $description = $db->query('select des from album'); 
    break; 
    } 

artist.php有 - >

 print_r($title); 
    print_r($description); 

一切工作正常。我想知道當有人登陸artist.php所有四個查詢執行或只是case /artist.php的兩個查詢?

+0

爲什麼你認爲所有4個querys應該被執行?假設你自己知道答案,但由於你對PHP不太熟悉,你可能不太確定。但它並不難...閱讀你的代碼,並問自己發生了什麼事。 – Twinfriends

+0

我有大約15頁,每頁有兩個或三個查詢。如果全部執行,則會降低性能。 – Pradeep

+0

它不會執行代碼,因爲您正在使用開關箱跳過它。 – Twinfriends

回答

2

Twinfriends答案是正確的。由於break,程序將只執行switch的一個分支。

你可以自己找到它。一種方式是一些調試器,它可以一步一步地執行。另一種方法是在switch的每個分支中測試打印(echo()var_dump())。你會看到,打印什麼,什麼不是。

+0

謝謝。據我所知,如果我從'artist'表中得到名字,這意味着第一個Case的兩個查詢都被執行,並且如果我從'album'表中得到名字,這意味着第二個case的兩個查詢都被執行。 – Pradeep

+1

@Pradeep是的,的確如此。您可以在[PHP手冊](http://php.net/manual/en/control-structures.switch.php)上閱讀關於switch的更多信息。 –