PHP: Как мне запретить включать / требовать добавления чисел в цикле? - PullRequest
2 голосов
/ 28 сентября 2011

Каждый раз, когда я пытаюсь назначить переменную include / require для переменной, в конце добавляется число.Я хотел бы сделать это без этого глупого номера.

Я пытался file_get_contents , но это не работает так же.Если это невозможно сделать с помощью require, есть ли ЛЕГКИЙ и КОРОТКИЙ (одна функция и одна строка кода) способ сделать это с другой функцией?

Пожалуйста, помогите мне, потому что это сводит меня с ума.

Например:

ФАЙЛ 1 (div.php):

<div><?php echo $x; ?></div>

ФАЙЛ 2:

<?php
$x = "Example 1";
$file = include('div.php');
echo $file;

$x = "Example 2";
$file = include('div.php');
echo $file;
?>

ВЫХОД:

Пример 1 1 Пример 2 1

Ответы [ 3 ]

6 голосов
/ 28 сентября 2011

Это потому, что значение по умолчанию include и require равно true или 1.

Когда вы включаете файл, он автоматически выводит ваш контент во включенный файл.Когда вы echo $file, вы повторяете возвращаемое значение включения, которое равно true.

В качестве примечания, если вы добавите return false; или return "<div>$x</div>"; во включенный файл, это будетстать значением $file.Все, что вы возвращаете из включенного файла, передается в переменную.

Например:

ФАЙЛ 1 (monkey_do.php):

<?php 
return "I am a monkey";

ФАЙЛ 2 (main.php):

<?php 
$monkey_see = include 'monkey_do.php';
echo $monkey_see; // prints "I am a monkey"
1 голос
/ 28 сентября 2011

Вы можете использовать выходную буферизацию :

$x = 'Example 1';
ob_start();
include ('div.php');
$file = ob_get_contents();
ob_end_clean();
echo $file;

РЕДАКТИРОВАТЬ: Я только что видел этот пример в руководстве, который определяет функцию для этого: http://php.net/manual/en/function.include.php#example-131

0 голосов
/ 28 сентября 2011

Если вы используете FILE1 в качестве шаблона, просто включите его. Также вы можете использовать буферизацию вывода как ответ @grossvogel.

<?php
$x = "Example 1";
include('div.php');

$x = "Example 2";
include('div.php');
?>
...