Включение функции включения внутри переменной - PullRequest
0 голосов
/ 11 декабря 2010

Я хочу включить файл в $ include [content] - это переменная, и я хочу использовать функцию include.

$includes[content]="
<form action=\"index.php?view=login&action=login&".iif($rid!="","rid=$rid&")."".$url_variables."\" method=\"post\" onSubmit=\"submitonce(this)\">
<input type=\"hidden\" value=\"$returnTo\" name=\"returnTo\">
Some html in php form.
 <-- I want to add include 'sys/CodeGen.php'; function -->
Some more html in php form.

Ends in
</form></div>

";
?>

Как мне добавить между включенными [контентом]?

1 Ответ

0 голосов
/ 11 декабря 2010

Я не уверен, что понимаю ваш вопрос. Я предполагаю, что вы хотите сделать что-то вроде этого:

$variable = "some html";
include($variable);

Если это так, все, что я могу сказать, это "ты не можешь, и ты не должен".

Эта часть «не может» связана с тем, что функция include() (и ее братья) используют передаваемое им значение, чтобы найти файл и прочитать его. Если ему передано что-либо, кроме пути к файлу, произойдет сбой. Это хорошая вещь.

То, что вы хотите сделать, это создать файл шаблона, который вы можете включить туда, где он вам нужен. Например:

// form.inc    
<form action="<?php echo $action; ?>">
<input type="hidden" value="$returnTo" name="returnTo">
</form>

Гораздо чище делать это таким образом, чем пытаться бросить его в переменную.

Если вы собираетесь многократно вызывать этот шаблон и беспокоитесь о производительности (это единственное, что я могу придумать, чтобы это рационализировать), тогда вы можете написать функцию в своем шаблоне, а затем include_once файл.

Например:

// form.inc

<?php
  function writeForm($action) {
?>
    <form action="<?php echo $action; ?>">
    <input type="hidden" value="$returnTo" name="returnTo">
    </form>
<?php
}
?>

Таким образом, вы можете вызвать include_once("form.inc");, и когда PHP проанализирует файл, он создаст функцию с именем writeForm(), которую вы можете вызывать столько раз, сколько захотите, без необходимости каждый раз читать с диска.

Если у вас есть куча крошечных фрагментов кода, которые вы хотите включить, но не хотите, чтобы куча трехстрочных файлов висела (опять же, по какой-либо причине), тогда вы всегда можете иметь «фрагменты» .inc "файл, который определяет все эти маленькие функции, как я обрисовал выше.

Вы можете даже взять его еще дальше и сгруппировать связанные фрагменты вместе и создать класс Helper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...