oop — PHP toString () не работает

Я иду по курсу удеми, где мы изучили toString, однако в моем браузере ничего не отображается, когда я использую функцию toString.

<?php

class Baddie{

//property
public $evilness = 10;
public $name = "";

//constructor
public function __construct($evilness, $name){
//echo "A ". __CLASS__ . " has been created!";
$this->evilness = $evilness;
$this->name = $name;
}

public function __toString(){
return (string)$this->name;
}
}

$bad = new Baddie(3, "bob");

//var_dump($bad);

?>

Вот скриншот
Хром: http://prntscr.com/bl941w

заранее спасибо!

-1

Решение

Вы только что создали новый объект Baddie, но __toString метод никогда не вызывается. Метод вызывается только если вы вызываете их напрямую $bad->__toString() или неявным образом от актерского состава, т.е. echo $bad; или же $str = (string) $bad

В твоем случае ты снимаешь хочешь использовать

$bad = new Baddie(3, "bob");
echo $bad;
3

Другие решения

Вам нужно позвонить toString()

echo $bad->__toString()

Или просто

echo $bad

Если echo вызывается с объектом, он будет искать __toString метод и использовать его результат в качестве вывода.

2

По вопросам рекламы [email protected]