magic-s magic-s - 5 months ago 8
PHP Question

PHP class return nothing

I'm just beginner with PHP OOP. I have a class and output is empty:

$test = new form('name1', 'passw2');
$test->getName();


and class:

<?php
class form
{
protected $username;
protected $password;
protected $errors = array();

function _construct($username, $password){
$this->username=$username;
$this->password=$password;
}

public function getsomething() {
echo '<br>working'. $this->getn() . '<-missed';
}

public function getName(){

return $this->getsomething();

}
public function getn() {
return $this->username;
}
}
?>


And output is only text without username:
POST working
working<-missed
Where is name1?

Answer

I've modifed your code a bit and added some examples to play around with. This should get you started.

class form
{
    protected $username;
    protected $password;
    protected $errors = array();

    // construct is a magic function, two underscores are needed here

    function __construct($username, $password){
        $this->username = $username;
        $this->password = $password;
    }

    // functions starting with get are called Getters
    // they are accessor functions for the class property of the same name

    public function getPassword(){
        return $this->password;
    }  

    public function getUserName() {
        return $this->username;
    }

    public function render() {
       echo '<br>working:';
       echo '<br>Name: ' . $this->username;     // using properties directly
       echo '<br>Password:' . $this->password;  // not the getters 
    }
}

$test = new form('name1', 'passw2');

// output via property access
echo $test->username;
echo $test->password;

// output via getter methods
echo $test->getUserName();
echo $test->getPassword();

// output via the render function of the class
$test->render();