Hallo,

Ik ben OOP aan het leren, maar ik kom tegen de error: Object of class Vehicle could not be converted to string (line 22)

Ik heb er al een tijdje op zitten te zoeken, maar zonder succes.

De code:

<?php
        class Vehicle {
          public function honk() {
            return "HONK HONK!";
          }
        }
        // Add your code below!
        class Bicycle
        {
            
        }
        $vehycle = new Vehicle();
        if(method_exists($vehycle,"honk"))
        {
            $vehycle -> honk();
            echo($vehycle);
        }
      ?>
De fout zit in echo($vehycle). Je gebruikt echo voor de output van strings, maar $vehycle is hier een object.

Aangezien de methode honk() wel een string retourneert, kun je dit:

<?php
if(method_exists($vehycle,"honk"))
{
    $vehycle -> honk();
    echo($vehycle);
}
?>

combineren tot:

<?php
if(method_exists($vehycle,"honk"))
{
    echo($vehycle -> honk());
}
?>

En om het meteen wat fraaier te maken... IK zou dat zo schrijven:

<?php
if (method_exists($vehycle, 'honk')) {
    echo $vehycle->honk();
}
?>

Reageren