Self Author
Новичок
Удаление класса
Как-нибудь можно наверняка удалить класс, который был создан через new?
Как-нибудь можно наверняка удалить класс, который был создан через new?
получается что следующий код должен работать?Класс имеет глобальную область видимости, даже если объявлен внутри функции
function FunctionTest()
{
class ClassTest
{
public $var = 10;
}
}
$obj = new ClassTest;
echo $obj->var;
Если я правильно понял, имелось в виду, что клас описывается вне процедуры, а переменная класса создаётся внутри.Автор оригинала: Said
Класс имеет глобальную область видимости, даже если объявлен внутри функции
Хотя, и так не получается:Автор оригинала: Said
Класс имеет глобальную область видимости, даже если объявлен внутри функции
class ClassTest{
var $var = 10;
}
function FunctionTest(){
$obj = new ClassTest;
}
echo $obj->var;
чтобы класс был объявлен нужно ж вызвать эту функцию чтоб она _выполнилась_Автор оригинала: Gas
получается что следующий код должен работать?
Результат - Fatal error: Class 'ClassTest' not found in ...PHP:function FunctionTest() { class ClassTest { public $var = 10; } } $obj = new ClassTest; echo $obj->var;
PHP: 5.0.4
p.s. думал вообще parse error будет
- класс объявлен внутри функции но видим в любом месте скрипта - т.е. везде можно создавать переменные этого класса (они же экземпляры или объекты) function FunctionTest()
{
class ClassTest
{
public $var = 10;
}
}
FunctionTest();
$obj = new ClassTest;
echo $obj->var;
ага, Screjet об этом сказал. Удивил такой синтаксис, да и только.чтобы класс был объявлен нужно ж вызвать эту функцию чтоб она _выполнилась_
$obj переменная (экземпляр класса) созданная внутри функции естественно снаружи будет не видна.Автор оригинала: Self Author
Если я правильно понял, имелось в виду, что клас описывается вне процедуры, а переменная класса создаётся внутри.
-~{}~ 20.12.05 15:33:
Хотя, и так не получается:
Не ругается, но и ничего не происходит.PHP:class ClassTest{ var $var = 10; } function FunctionTest(){ $obj = new ClassTest; } echo $obj->var;
Так что, непонятно, что имелось в виду о глобальной видимости.
то же самое можно так включить класс из другого файла. это вроде как более обычный случай.Автор оригинала: Gas
ага, Screjet об этом сказал. Удивил такой синтаксис, да и только.
function somefunc() {
require_once('someclass.php');
....
}
Неправда. Попробуй два раза вызвать FunctionTest()то же самое можно так включить класс из другого файла. это вроде как более обычный случай.
function FunctionTest()
{
if(! class_exists('ClassTest')) {
class ClassTest
{
public $var = 10;
}
}
}