I got this project I am building in php and I ran into a strange error. It is not so much the solution I am looking for but reason of the error since I already found a solution(which I don't like).
I build a OOP php project. And when I have the function login() in the class Login{} it runs automatically during compiling on loading the page, but when I rename the function to login2() it doesn't. I don't call the function anywhere on start up, it is supposed to be called when the user clicks the login button.
//code example
class Login extends Page{
public function login(){ //This function causes problems.
$result = $this->data->runQuery(SELECT * FROM users WHERE name = ?);
//use result
}
}
class Page{
protected $data;
public function __construct($data){
$this->data = $data;
}
}
//Index.php contains this.
$data = new DatabaseConnection($ip, $username, $pass, $db); //sets up a dbcon.
$login = new Login($data); //add database object to Login object.
//Fatal error: Call to a member function runQuery() on a non-object in Login.php
This is a shortened version of my code I don't call the function login() anywhere, but it still runs when the php gets compiled on loading the page. However if I rename the function to anything but login() or LOGIN() it doesn't cause any problems it even works when you call it later.
So my question does anyone know why this happens.