Как с помощью require подключить не весь файл, а только его часть? Например:
index.php:
$text = 'Привет';
echo $text;
$day = 21;
echo $day;
second.php:
require 'index.php';
Как подключать, допустим, только $text = 'Привет'; и echo $text;?
Это очень странный подход и делать так не нужно.
Но если очень хочется делать именно так, то:
require объявляете переменную, например, $codePart = "part_1";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
Так у Вас файл будет включен ровно один раз, а блоки можно выводить, где нужно.
А еще лучше почитать про шаблонизаторы.
В php, include/require подключает и исполняет файл. Вы не сможете импортировать часть файла, как например это сделано в Python или Java. По сути include/require "вставляет" содержимое файла вместо своего вызова, даже если он будет в теле функции, кроме так называемых "магических" констант тип FILE или DIR которые обрабатываются интерпретатором php до подключения.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей