How can I create a PHP class to create another class in its constructor?

I am so new to PHP here.

I want to know what is the correct way to instantiate a class in another class constructor in its parameters.

(I have a shit test in botton)

class CryptoControl {

    public $helper;
    public $keyValues;

    public function __construct ($primo1, $primo2, $message) {
        $this->helper = new MathHelper();
        $this->keyValues = new KeyValues($primo1, $primo2, $message);
    }

    public function criptografa_descriptografa_simetrica() {

        $message = $keyValues->getMessage();
        echo "Texto original: " . $message . "\n";
        echo "Chave criptografada: " . base64_encode($message) . "\n";
        $message_criptografada = base64_encode($message);
        echo "Chave descriptografada: " .    base64_decode($message_criptografada) . "\n";
    }
}

$exec = new CryptoControl(17, 41, "TURING");
$resposta = $exec->criptografa_descriptografa_simetrica();
echo $resposta;

And the class that I want to create:

class KeyValues {

    public $numeroPrimo_1;
    public $numeroPrimo_2;
    public $message;

    public function KeyValues ($primo1, $primo2, $message) {
        $this->numeroPrimo_1 = $primo1;
        $this->numeroPrimo_2 = $primo2;
        $this->message = $message;
    }

    #getters and setters
 }

This is the error I get ...

PHP note: Undefined variable: keyValues ​​in / home / rodolfolottin / gitrepositories / Crypto / CryptoControl.php on line 72 PHP Fatal error: call getMessage () member function for non-object in / home / rodolfolottin / gitrepositories / Crypto / CryptoControl.php on line 72

Thank you for your help...

+4
source share
2 answers

Change the following line

$message = $keyValues->getMessage();

to

$message = $this->keyValues->getMessage();

$keyValues . $this, .

+4
class KeyValues {

    public $numeroPrimo_1;
    public $numeroPrimo_2;
    public $message;

    public function KeyValues ($primo1, $primo2, $message) {
        $this->numeroPrimo_1 = $primo1;
        $this->numeroPrimo_2 = $primo2;
        $this->message = $message;
    }
    public function getMessage() {
        return $this->message;
    }

    #getters and setters
 }


class CryptoControl {

    public $helper;
    public $keyValues;

    public function __construct ($primo1, $primo2, $message) {
        $this->helper = new MathHelper();
        $this->keyValues = new KeyValues($primo1, $primo2, $message);
    }

    public function criptografa_descriptografa_simetrica() {

        $message = $this->keyValues->getMessage();
        echo "Texto original: " . $message . "\n";
        echo "Chave criptografada: " . base64_encode($message) . "\n";
        $message_criptografada = base64_encode($message);
        echo "Chave descriptografada: " .    base64_decode($message_criptografada) . "\n";
    }
}

$exec = new CryptoControl(17, 41, "TURING");

$resposta = $exec->criptografa_descriptografa_simetrica();

echo $resposta;
0

All Articles