2013-09-13 4 views
0

сначала позвольте мне сказать, что я очень стараюсь изучать PHP, и чем больше я учусь, тем больше хочу изучать и использовать язык. Я в первую очередь кодер HTML5/CSS3, и я пытаюсь сделать мои сайты более эффективными с помощью PHP.Изменение значения переменной на основе другой переменной в PHP

Вот моя текущая дилемма. Я пытаюсь использовать переменные для изменения значений по мере необходимости. В начале каждой странице файла я объявил имя страницы, называется мои функции файл и вызываемые функции головы и заголовка:

<?php 
    $page = 'contact'; 
    include('functions.php'); 
    head(); 
    header(); 
?> 

Небольшое изменение этого включается во всех файлах страницы. Все хорошо.

Теперь у меня есть function.php. У меня есть переменная для значения метазначения, то есть $title, и объявила ее глобальной.

Как изменить значение этой переменной на основе значения переменной $ page? Вот то, что я добавил в файл functions.php, но я совершенно уверен, что это неверно, так как он не работает:

$title = array { 
    if ($page == 'contact') { 
     echo 'Contact Us'; 
    } 
} 

Я не просто ищет правильный код, но объяснение, если возможное. Заранее благодарим за помощь.

ответ

3

Вы можете хранить все заголовки в ассоциативном массиве:

$TITLES = array(
    'contact' => 'Contact Us', 
    'home' => 'Welcome', 
); 

$title = "Some Default Title"; 

if(isset($TITLES[$page])){ //check to see if we have a specific title set up 

    $title = $TITLES[$page]; //override it if it is set 

} 
+0

Да, я считаю, что это то, что Джейсон ООО наставляла в своем комментарии, так что спасибо за объяснения rosscowar. Я думаю, что я склоняюсь к этому методу больше, чем к переключателю, поскольку он кажется более компактным. Спасибо за вашу помощь! Это фантастика. – AHCo

0

То, что я рекомендовал бы, пожалуй, switch case заявления для хранения всех возможных типов.

switch($page){ 
    case "contact": 
     $title = "Contact Us"; 
     break; 
    case "about": 
     $title = "About Us"; 
     break; 
    default: 
     $title = "Default Title"; 
     break; 
} 
1

Вы можете просто создать ассоциативный массив, который содержит страницы в качестве ключей и названий в качестве значений, то вы можете получить такие значения, как:

$titles = array('Home' => 'Welcome to Home', 'contact' => 'Contact Us'); 

if(array_key_exists($page, $titles)){ 
echo $titkes[$page]; 
} 
1

Вы можете использовать функцию с аргументом, а затем используйте switch для проверки значения переменной и возврата соответствующего текста.

function pageTitle($var) { 
    switch ($var) 
    { 
    case "contact": 
     return "Contact Us"; 
     break; 
    case "about": 
     return "About Us"; 
     break; 
    . 
    . 
    . 
    default: 
     return "Default"; //default case 
    } 
} 

И использовать его так:

<?php 
    $page = 'contact'; 
    include('functions.php'); 
    head(); 

    echo PageTitle('contact'); //should echo 'Contact Us' 
    header(); 

?> 
Смежные вопросы