function autoload

20/11/2013

2

PHP

Boa tarde,

Hoje me deparei com um problema que acredito ser de fácil resolução.

Conheci a função autoload porem nao consigo usa-la porque quando declaro em uma classe não posso declara-la em outra exemplo

function __autoload($class_name){
include $class_name.".php";
}
class 1 {
$a = new classqualquer;
}

//outro arquivo em outra pasta
class 2 extends class 1 { #não reconhece a class 1

}


e se eu declarar autoload novamente antes de class 2 não funciona.
Responder

Posts

20/11/2013

Marcio Araujo

está em uso ainda esta função?

[url]http://php.net/manual/pt_BR/language.oop5.autoload.php[/url]
Responder

20/11/2013

William


//outro arquivo em outra pasta


Colega esse ponto da sua dúvida me chama a atenção, se está em outra pasta esse caminho está sendo informado na function autoload()?

Só se você tiver outro autoload, porque no exemplo que você postou está engessado o caminho das classes.

Observação: Como o Márcio mencionou acima essa função está sendo descontinuada e no futuro pode não fazer mais parte do PHP, é aconselhado o uso do spl_autoload_register(), que pode trazer mais flexibilidade para várias tarefas, entre elas registrar funções que tem como objetivo executar os "require_once".
Responder

21/11/2013

Lucas Koch

Vocês tem razão , a função spl_autoload_register() é mais adequada nesse caso , obrigado pela ajuda
Responder

21/11/2013

William

Sua dúvida foi sanada colega?
Responder

21/11/2013

Lucas Koch

vou implementar a nova função ai se surgirem duvidas , posto aqui
Responder
De fato spl_autoload_register() vai funcionar,

Anyways, nos dê o feedback.

Att
Responder