PHP требует и включает GET

#php #get #require-once

#php #получить #требовать-один раз

Вопрос:

Я хотел бы запросить файл, но также передать переменные GET через URL, но когда я пишу:

 <?php
   require_once("myfile.php?name=savagewood");
?>
  

Я получаю неустранимую ошибку. Как бы мне реализовать эту функциональность по-другому, чтобы я не получал фатальную ошибку?

Комментарии:

1. Оглядываясь на 11 лет назад на вопросы, которые я задавал на SO, так неловко 😂

Ответ №1:

переменные будут доступны в обычном режиме, вам не нужно передавать их подобным образом.

 $name='savagewood';
require_once("myfile.php");
  

$name будет доступен в myfile.php

Комментарии:

1. Конечно, только если они находятся в одной области видимости, или включаемый скрипт непроцедурный, или $name находится внутри глобальных значений.

2. в моем случае это не работает. $name = $_POST['test']; здесь я получил значение $ name. но в myfile.php не получает значения $name;

3. как использовать varible глобально?

Ответ №2:

 <?php
$getVarsArray = $_GET;
$postVarsArray = $_POST;
/* n number of variables and lines of code*/
include('script-a.php');
?>
  

Теперь в script-a.php имеет доступ к $getVarsArray и $postVarsArray , и если в любом случае вы сомневаетесь, вы можете использовать $GLOBALS для доступа к любой переменной на протяжении всего жизненного цикла скрипта. Но использование глобальных переменных — это грех. 🙂

Комментарии:

1. $_GET и $_POST являются суперглобальными , что означает, что они существуют во всех областях. Копирование суперглобалов GPC в другую переменную, подобную этой, выходит за рамки глупости и граничит с безумием. Не делайте этого.

2. @Charles, использование этих переменных GET и POST без их обработки будет в равной степени за гранью глупости и граничащего с безумием. Я никогда этого не делаю. Sane обработает эти суперглобальные файлы и скопирует их и отменит переменные POST / GET. Или параноик может даже написать свою собственную реализацию для использования GET / POST var. Это не входит в рамки вопроса и не упоминалось. Моя ошибка.

Ответ №3:

Нет необходимости передавать переменные в новый файл, потому что при включении нового файла переменные сохраняются. Помните, что $ _GET — это массив, и он может быть изменен в скрипте.

 <?php
   $_GET['name'] = "savagewood";
   require_once("myfile.php");
?>
  

В этом случае $_GET['name'] доступен из «myfile.php«

Ответ №4:

Я думаю, что у меня есть идеальное решение вашей проблемы. Вы можете использовать implode функцию PHP. Но я бы настоятельно рекомендовал использовать код Шакти Сингх.

КОД РЕШЕНИЯ

 echo implode(file('http://path-to-your-site/your-dir/myfile.php?name=savagewood'));