Подключение части файла (require)

203
12 мая 2017, 17:52

Как с помощью require подключить не весь файл, а только его часть? Например:
index.php:

$text = 'Привет';
echo $text;
$day = 21;
echo $day;

second.php:

require 'index.php';

Как подключать, допустим, только $text = 'Привет'; и echo $text;?

Answer 1

Это очень странный подход и делать так не нужно.

Но если очень хочется делать именно так, то:

  1. Перед require объявляете переменную, например, $codePart = "part_1";
  2. Файл index.php форматируете следующим образом:
if (!empty($codePart)) {
    switch ($codePart) {
        case 'part_1':
            $text = 'Привет';
            echo $text;
            break;
        case 'part_2':
            $day = 21;
            echo $day;
            break;
    }
}

В second.php у Вас будет что-то вроде:

$codePart = 'part_1';
require 'index.php';

По факту, файл будет включен весь, но выведется только выбранная часть. Подход этот плохой и тупиковый.

Гораздо лучше (хотя тоже не оптимально), вынести нужные Вам блоки в отдельные функции, а потом просто вызывать их, где нужно.

index.php:
<?php
function partOne() {
    echo 'Привет';
}
function partTwo() {
    echo 21;
}
second.php:
<?php
include('index.php');
partOne(); //выводится "Привет"
partTwo(); //выводится 21

Так у Вас файл будет включен ровно один раз, а блоки можно выводить, где нужно.

А еще лучше почитать про шаблонизаторы.

Answer 2

В php, include/require подключает и исполняет файл. Вы не сможете импортировать часть файла, как например это сделано в Python или Java. По сути include/require "вставляет" содержимое файла вместо своего вызова, даже если он будет в теле функции, кроме так называемых "магических" констант тип FILE или DIR которые обрабатываются интерпретатором php до подключения.

READ ALSO
многомерный массив, if и переменная

многомерный массив, if и переменная

Есть форма где юзер выбирает какой список показать (почта, емайл, все)В запросе уже написано условие (WHERE from = '1' или WHERE from = '0' или без условия)...

211
Как обрезать урл и откинуть название файла

Как обрезать урл и откинуть название файла

Подскажите пожалуйста как мне обрезать название файла в конце ссылки, те

299
История болезни пациентов на php mysql

История болезни пациентов на php mysql

Есть система для учета паспортных данных и истории болезней пациентовКак добавлять паспортные данные в mysql все знают в принципе и историю...

200
Simple HTML DOM не парсит всe div с классом content

Simple HTML DOM не парсит всe div с классом content

Есть, html страница -> http://lenfilmtv/26996 Парсю ее, нужно достать div, который с классом content, из него дальше взять div с классом title, далее h1 и a

282