3v4l.org

run code in 300+ PHP versions simultaneously
<?php /* Challenge 2: Implement AnswerInterface and get Question to echo "4". */ class Question { public function __construct(AnswerInterface $answer) { echo "What is 2 + 2?\n"; $answer = $answer->get()->the()->answer(); if ($answer instanceof AnswerInterface) { echo $answer . PHP_EOL; } } } interface AnswerInterface { public function get(); public function the(); public function answer(); } class Answer implements AnswerInterface { private $output; public function __construct($output = 4) { $this->output = $output; } public function getAnswer() { return $this->output; } public function get() { return $this; } public function the() { return $this; } public function answer() { return $this->getOutput(); } } // start editing here // end editing here $answer = new Answer; $question = new Question($answer);
Output for git.master, git.master_jit, rfc.property-hooks
What is 2 + 2? Fatal error: Uncaught Error: Call to undefined method Answer::getOutput() in /in/UgE3c:53 Stack trace: #0 /in/UgE3c(12): Answer->answer() #1 /in/UgE3c(63): Question->__construct(Object(Answer)) #2 {main} thrown in /in/UgE3c on line 53
Process exited with code 255.

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
35.76 ms | 401 KiB | 8 Q