2016-09-11 4 views
-1

Я хочу создать функцию PHP с помощью следующего кода, но когда я добавить это к функции, которую он перестает работать:

Код работы:просто добавить код функции PHP

$arr = array(
     "index.php" => $home, 
     "about.php" => $about, 
     "details.php" => $details 
    ); 
    $url = basename($_SERVER['PHP_SELF']); 

    foreach($arr as $key => $value){ 

     if($url == $key) { 
      echo $value; 
     } 
    } 

Код Doesnt работы:

function metaData() { 
    $arr = array(
     "index.php" => $home, 
     "about.php" => $about, 
     "details.php" => $details 
    ); 
    $url = basename($_SERVER['PHP_SELF']); 

    foreach($arr as $key => $value){ 

     if($url == $key) { 
      echo $value; 
     } 
    } 
} 

metaData(); // NULL 
+2

Я думаю, что если вы не передадите переменные или не сделаете их «глобальными», они не будут распознаны. –

ответ

2

$home, $about и $details все из сферы в вашей функции. Вам необходимо передать их в качестве параметров этой функции, чтобы они могли быть доступны самой функции.

function metaData($home, $about, $details) { 
    $arr = array(
     "index.php" => $home, 
     "about.php" => $about, 
     "details.php" => $details 
    ); 
    $url = basename($_SERVER['PHP_SELF']); 

    foreach($arr as $key => $value){ 

     if($url == $key) { 
      echo $value; 
     } 
    } 
} 

metaData($home, $about, $details); 
+0

Да, так было в случае, когда я писал в комментариях. Однако я не был уверен. –

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