Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Savio Designer

[Resolvido] Problemas com POO - Catchable fatal error

Recommended Posts

Catchable fatal error: Argument 1 passed to User::__construct() must be an instance of BD, none given, called in C:\xampp\htdocs\helpdesk.saviodesigner\public_html\index.php on line 4 and defined in C:\xampp\htdocs\helpdesk.saviodesigner\public_html\lib\Helpdesk\user.php on line 12

 

porque está mensagem de erro aparece ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq o método tá esperando um objeto em específico, e você está mandando pra ele um 'nada'

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq o método tá esperando um objeto em específico, e você está mandando pra ele um 'nada'

não entendi muito bem...

veja o código e veja se pode me ajudar.. ^^

Class User

class User{

private $_login;
private $_senha;
private $_nome;
private $_email;
private $_permissao;
protected $_db;

public function __construct(BD $banco){
	global $banco;
	$this->_banco = $banco;
}
public function insert(){
	$sql = "Insert into usuario(login, senha, nome, email, permissao) values(?, ?, ?, ?, ?)";
}

public function listar(){
	return $this->banco->select("login, nome, email", "usuario");
}

}

Class BD

class BD{

private $_host;
private $_user;
private $_senha;
private $_db;
private $_tabela;
private $_colunas;

private $banco;

public function __construct($host, $user, $senha, $db){
	$this->_host = $host;
	$this->_user = $user;
	$this->_senha = $senha;
	$this->_db = $db;
}
public function conexao(){
	mysql_connect($this->_host, $this->_user, $this->_senha);
	mysql_select_db($this->_db);
}
public function select($colunas, $tabela){
	$sql = "select $colunas from $tabela";
	$result = mysql_query($sql);
	$ret = array();
	if(mysql_num_rows($result)>0){
		for($i = 0; $i < mysql_numrows($result); $i++){
			$ret[] = mysql_fetch_array($result);
		}
	}
	return $ret;
}

}

arquivo index.php

<?php
require_once 'config.php';

$user = new User();
$user->listar();


?>

config.php

<?php
require_once 'lib/Helpdesk/user.php'; //inclue na Class do Usuário do site.
require_once 'lib/Helpdesk/bd.class.php';

$banco = new BD("localhost", "root", "", "helpdesk");
$banco->conexao();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui:

class User{


       public function __construct(BD $banco){

o método espera uma instancia da class BD

 

e aqui:

$user = new User();

você não envia nada

 

esse é o erro.

 

no mínimo, você teria que fazer assim:

 

$user = new User( $banco );

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui:

class User{


       public function __construct(BD $banco){

o método espera uma instancia da class BD

 

e aqui:

$user = new User();

você não envia nada

 

esse é o erro.

 

no mínimo, você teria que fazer assim:

 

$user = new User( $banco );

 

agora eu entendi, muito obrigado.

problema resolvido.. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.