2015-06-12 3 views
1

Итак, у меня есть этот фрагмент текста, который я хотел бы получить из другого места внутри функции. Я положил его в "configuration.php" и хотели бы использовать в файле "functions.php", используя локальную переменную внутри глобальной переменной внутри функции

configuration.php

$event_confirmation_message = "Your awesome submission has been approved - $link. "; 

functions.php

somefunction(several arguments go here){ 
//code that does other stuff with the function arguments 
//then we need to send the confirmation message 
      global $event_confirmation_message; //to change, see configuration.php 
      $link = "http://www." . $city . "events.info/index.php?option=events&main_id=" . $row['main_id']; 
      mail($email, "Please check your your submission", $event_confirmation_message, "From: [email protected]");  
     } 

все это работает, почта отправляется, появляется сообщение с подтверждением, но $ link в отправленном письме пусто (пусто, не определено?). Таким образом, локальная переменная $link каким-то образом не обрабатывается в глобальной переменной $event_confirmation_message. Есть ли что-то, что я делаю неправильно?

+0

делает configuration.php также '$ link' определены? –

+0

Я не могу поместить $ link в config.php, поскольку он скомпонован со значениями, которые создает функция somefunction(). – Natalia

+0

, если конфигурация загружается сперва, вы получите уведомление неопределенной переменной сразу с места в карьер. Итак, вам нужно выяснить, как это загрузится. Нет никакого способа, чтобы ваш другой файл мог использовать эту конфигурацию, если в нем не было определено '$ link'. На данный момент ваш вопрос неясно, как все загружено и должно быть связано друг с другом. –

ответ

2

Делай так:

// configuration.php 
$event_confirmation_message = "Your awesome submission has been approved - "; 

//functions.php 
somefunction(several arguments go here){ 
    global $event_confirmation_message; 
    $link = "http://www." . $city . "events.info/index.php?option=events&main_id=" . $row['main_id']; 
    $msg = $event_confirmation_message . $link; 
    mail($email, "Please check your your submission", $msg, "From: [email protected]");  
} 
+0

круто, попробуй прямо сейчас :). Я уже думал об этом, но я бы хотел использовать $ link в $ event_confirmation_message, не нарушая сообщение в двух частях. – Natalia

+0

Нет, не может сделать в приведенном выше примере, как объясняется @ marc-b – Jayesh

+0

Хорошо, я не вижу других вариантов, кроме как создавать переменные $ begin_of_the_message (глобальные), $ link (local) и $ end_of_the_message (global) и используйте так. – Natalia

1

PHP не может путешествовать во времени.

$link в вашем configuration.php будет оцениваться/заменяться при анализе/загрузке configure.php. Поэтому ваш $event_confirmation_message НЕ будет содержать переменную больше, когда вы используете переменную в другом месте. Он будет содержать любой текст в $link в то время, когда был определен $event....

Это очень похоже на покупку торта в магазине и интересно, почему вы не можете найти яйцо/муку/молоко/сахар, из которого он сделан - все это было «уничтожено» в пекарне, и у вас есть просто торт ...

+0

Если бы я мог путешествовать во времени, чтобы увидеть, как выглядела Мари-Антуанетта. Я просто не хочу, чтобы она предлагала мне любой ее пирог. –

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