@Vladimir-Hetman

Переменная и namespace?

Для того чтобы вызвать функцию из "namespace" в другом "namespace"
используется use function, для константы use const, а как вывести переменную?

То есть, как вызвать переменную $other_var из файла "egg.php",
из namespace user\original в другом файлике, где namespace xopa
и уже есть переменная с таким же именем $other_var
Должно получится две переменные с одинаковыми именами из разных namespace и разными значениями.

Код файла egg.php:
namespace user\original;
 
class user{
public $name = "класс из библиотеки <br>";     
}
 
class home{
public $name = "класс 'home' из библиотеки <br>";      
} 
 
const myConst = "а это константа из библиотеки <br>";
 
function print_s($value){
echo $value;
}
 
$other_var = "переменная из библиотеки"; // как ее вывести в коде ниже?


Файл, где используется код из "egg.php", из namespace "user\original"
namespace xopa;
 
include "include/egg.php";     
 
class user {
public $name = "мой класс <br>";
}
                                       
use \user\original\user as other_user, \user\original\home as other_home;                                       
use const \user\original\myConst;                                
use function \user\original\print_s;  
 
 
$names = [
$my_user     = new user(), 
$second_user = new other_user(), 
$class_home  = new other_home()
];
 
foreach($names as $items){
echo $items->name;
}
 
 
echo myConst;                      
print_s("функция из библиотеки"); 
 
$other_var = "моя переменная <br>";  // уже есть переменная с именем $other_var из namespace "xopa"
echo $other_var;                     // как здесь помимо этой переменной вывести еще $other_var  из namespace "user\original"
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
toxa82
@toxa82
Смотря как вы подключаете файл с объявленной переменной. Переменные вне нэймспэйсов, но если вы подключаете файл в функции/методе, то эта переменная будет видна только в этой функции/методе. Подробнее вам нужно читать про области видимости.
У вас извращенное представление о правильном коде, то что вы пишите это полная фигня. Я б на вашем месте описал глобальную цель, а то у вас уже второй вопрос про неймспейсы, которые вы неправильно поняли и пытаетесь криво использовать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы