Передать переменную PHP от страницы к классу на страницу

У меня есть вопрос относительно области видимости в PHP

Я установил переменную в одном файле. Этот файл создает экземпляр класса, а затем вызывает метод этого класса. Этот метод включает в себя отдельный файл. Мне нужно знать, как можно ссылаться на переменную на первой странице на второй странице, не передавая ее в качестве переменной конструктора классу.

Например:

page_1.php

<?php
$variable = "my variable";

$myClass = new MyClass();
$myClass->loadPage();
?>

MyClass.php

<?php
Class MyClass
{
public function loadPage ()
{
include_once('page_2.php');
}
}
?>

page_2.php

<?php
echo $variable;
?>

Я слышал, что использование глобальной области видимости вызывает недовольство, и я уверен, что неправильно помещать переменную в качестве полей в классе, особенно учитывая, что в файле file_1.php, вероятно, будет несколько не связанных переменных, которые должны быть упомянутым в page_2.php. Так что мне нужно сделать?

Спасибо

0

Решение

Передайте переменную в качестве параметра loadPage():

$myClass->loadPage($variable);

и обновить определение loadPage() принять параметр:

public function loadPage ($variable)

Когда вы включаете page_2.php, вы просто вставляете код этого сценария в текущий запущенный сценарий и область видимости. В результате код в page_2.php может просто ссылаться $variable без дополнительной работы.

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]