Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: как запустить класс по имени?

Сообщения:  [1-10]   [11-16] 

 
 автор: а-я   (11.05.2010 в 17:26)   письмо автору
 
   для: Саня   (11.05.2010 в 17:03)
 

О, Благодарю... =) работает как часы.

  Ответить  
 
 автор: Саня   (11.05.2010 в 17:03)   письмо автору
 
   для: а-я   (11.05.2010 в 17:01)
 

Не к тому объекту применяете метод.
<?
$refl 
= new ReflectionClass($name);  
$instance $refl->newInstanceArgs($args); 
$instance->start();

newInstanceArgs() возвращает объект класса $name, заданный в конструкторе рефлектора.

  Ответить  
 
 автор: Саня   (11.05.2010 в 17:01)   письмо автору
 
   для: а-я   (11.05.2010 в 16:55)
 

.

  Ответить  
 
 автор: а-я   (11.05.2010 в 17:01)   письмо автору
 
   для: а-я   (11.05.2010 в 16:55)
 

не видит он мои методы.. т.е. не работает


$refl = new ReflectionClass($name); 
$refl->newInstanceArgs($args);
$refl->start();// <- не работает...


но метод есть в классе и запускается при нормальном создании класса,
даже запускается через конструктор при Reflection...

может не так запускать теперь?

  Ответить  
 
 автор: а-я   (11.05.2010 в 16:55)   письмо автору
 
   для: Саня   (11.05.2010 в 16:42)
 

я просто получаю

Fatal error: Call to undefined method ReflectionClass::start()


хотя метод "start()" в классе есть...
где-то сам лажанулся...

попытаюсь найти.. еще раз спасибо..

  Ответить  
 
 автор: Саня   (11.05.2010 в 16:42)   письмо автору
 
   для: а-я   (11.05.2010 в 16:38)
 

А с какого в этом объекте что-то будет, если описание его класса выглядит так?
<?
class test {  
  function 
__construct($a$b$c$d) { 
  } 
}

  Ответить  
 
 автор: а-я   (11.05.2010 в 16:38)   письмо автору
 
   для: Саня   (11.05.2010 в 16:25)
 

что-то понять не могу... он создает что-то свое.. нет ни методов, ни свойств в созданном таким образом экземпляре..

  Ответить  
 
 автор: Саня   (11.05.2010 в 16:25)   письмо автору
 
   для: а-я   (11.05.2010 в 16:07)
 

Не понял кто чего просит...
<?php

class test 
  function 
__construct($a$b$c$d) {
  }
}  

function 
load($class) {  
  
$args func_get_args();   
  
array_shift($args);   
  
$refl = new ReflectionClass($class);  
  return 
$refl->newInstanceArgs($args);  
}  

$test load('test'1234);
$test2 load('test'1234);
var_dump($test);  // object(test)#2
var_dump($test2); // object(test)#3
var_dump($test === $test2); // false
Всё работает верно $test и $test2 разные объекты одного и того же класса.

$refl = new ReflectionClass(NEW $class)
гененрирует много warning'ов

  Ответить  
 
 автор: а-я   (11.05.2010 в 16:07)   письмо автору
 
   для: Саня   (11.05.2010 в 09:57)
 

все равно просит готовый экземпляр

<? 
class test 
  function 
__construct($a$b$c$d) { 
  } 


function 
load($class) { 
  
$args func_get_args();  
  
array_shift($args);  
  
$refl = new ReflectionClass(NEW $class); 
  return 
$refl->newInstanceArgs($args); 


$test load('test'1234);



так вроде работает)

  Ответить  
 
 автор: а-я   (11.05.2010 в 10:38)   письмо автору
 
   для: Саня   (11.05.2010 в 09:57)
 

благодарю..

2ой вариант отпадает.. желательно не изменять класс.

первый вариант буду тестировать... =)

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования