[PHP] Внешняя переменная внутри класса

DavyJohnes
На сайте с 05.01.2011
Offline
84
9273

1.php


$asd='123';

2.php


require_once('1.php');

class a{
__construct(){
var_dump($asd);
}
}

Результат создания объекта класса 'a':"null"

Если так:

2.php


class a{
__construct(){
require_once('1.php');
var_dump($asd);
}
}

То результат нормальный. Но включать файл в каждом методе класса не очень удобно. Как сделать так что бы переменная $asd определенная в другом файле была известна всему классу?

https://handy-tools.io (https://handy-tools.io) - Набор полезных утилит для всех!
Dreammaker
На сайте с 20.04.2006
Offline
570
#1


class a{

protected $value

__construct($eternalValue){
$this->value = $eternalValue
var_dump($this->value );
}
}


$cobject = new a($asd)

Как-то так.

IL
На сайте с 20.04.2007
Offline
435
#2

Вообще, неправильно это..

но технически в методах класса global отрабатывает

class a{

__construct(){
global $asd;
var_dump($asd);
}
...
}
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
fa2m
На сайте с 07.09.2011
Offline
23
#3

Как вариант, можно вместо

$asd='123'; 
написать
class B {$asd='123';}
а в файле 2.php написать
class A extends B
Встречи в Днепре /ru/forum/736064 (/ru/forum/736064) Беклинк за копейку. Удобный сервис анализа обратных ссылок. (http://backlink.page-weight.ru/)
S5
На сайте с 04.01.2010
Offline
77
#4

Можно и глобальную переменную обьявить :)

dkameleon
На сайте с 09.12.2005
Offline
386
#5

1. использовать global

2. использовать константы.

3. использовать $GLOBALS

4. использовать класс и его переменные, вместо обычной переменной.

Дизайн интерьера (http://balabukha.com/)
Jekyll
На сайте с 04.05.2009
Offline
136
#6

ООП для того и существует, чтобы в посторонних классах нельзя было получить доступ ко всяким $asd

DavyJohnes:
Как сделать так что бы переменная $asd определенная в другом файле была известна всему классу?

Проблема не в том, что она в другом файле, а в областях видимости... выше уже подсказали

vlasoff
На сайте с 31.08.2007
Offline
101
#7

Для глобальных переменных создайте класс-реестр, на синглтоне

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий