3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class Move { var $direction; var $value; var $x; var $y; public static function initializeEmpty(){ return (new Move(array(0, 0), "NONE", -1)); } public function __construct($pos, $direction, $value){ $this->y = $pos[0]; $this->x = $pos[1]; $this->value = $value; $this->direction = $direction; } public function compare($move){ return $move->value > $this->value ? $move : $this; } public static function maxValDirection($moves, $board, $player, $pos){ $best = Move::initializeEmpty(); foreach($moves as $m){ $m->setValue($board, $player, $pos); $best = $m->compare($best); } return $best; } public function setValue($board, $player, $pos){ echo "0"; if ($board[$y][$x] != "-") $this->value = -1; else $this->value = 1; } } define("MAXSIZE", 100); echo MAXSIZE; define("ABCD", 100); echo ABCD; define(P1, "r"); define(P2, "l"); define(WALL, "#"); function nextMove($player,$pos,$board){ $moves = array(); array_push($moves, new Move(array($pos[0] - 1, $pos[1]), "UP", -1)); array_push($moves, new Move(array($pos[0] + 1, $pos[1]), "DOWN", -1)); array_push($moves, new Move(array($pos[0], $pos[1] - 1), "LEFT", -1)); array_push($moves, new Move(array($pos[0], $pos[1] + 1), "RIGHT", -1)); return Move::maxValDirection($moves, $board, $player, $pos)->direction; } $m1 = Move::initializeEmpty(); $m2 = new Move(array(0, 1), "RIGHT", 10); print_r(Move::maxValDirection(array($m1, $m2), "", "", "")); ?>
based on BtZ71
Output for 7.2.0
100100 Warning: Use of undefined constant P1 - assumed 'P1' (this will throw an Error in a future version of PHP) in /in/kckUc on line 46 Warning: Use of undefined constant P2 - assumed 'P2' (this will throw an Error in a future version of PHP) in /in/kckUc on line 47 Warning: Use of undefined constant WALL - assumed 'WALL' (this will throw an Error in a future version of PHP) in /in/kckUc on line 48 0 Notice: Undefined variable: y in /in/kckUc on line 34 Notice: String offset cast occurred in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 Notice: Undefined variable: x in /in/kckUc on line 34 Notice: String offset cast occurred in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 0 Notice: Undefined variable: y in /in/kckUc on line 34 Notice: String offset cast occurred in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 Notice: Undefined variable: x in /in/kckUc on line 34 Notice: String offset cast occurred in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 Move Object ( [direction] => RIGHT [value] => -1 [x] => 1 [y] => 0 )
Output for 5.4.9 - 7.1.10
100100 Notice: Use of undefined constant P1 - assumed 'P1' in /in/kckUc on line 46 Notice: Use of undefined constant P2 - assumed 'P2' in /in/kckUc on line 47 Notice: Use of undefined constant WALL - assumed 'WALL' in /in/kckUc on line 48 0 Notice: Undefined variable: y in /in/kckUc on line 34 Notice: String offset cast occurred in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 Notice: Undefined variable: x in /in/kckUc on line 34 Notice: String offset cast occurred in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 0 Notice: Undefined variable: y in /in/kckUc on line 34 Notice: String offset cast occurred in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 Notice: Undefined variable: x in /in/kckUc on line 34 Notice: String offset cast occurred in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 Move Object ( [direction] => RIGHT [value] => -1 [x] => 1 [y] => 0 )
Output for 5.3.19 - 5.3.29
100100 Notice: Use of undefined constant P1 - assumed 'P1' in /in/kckUc on line 46 Notice: Use of undefined constant P2 - assumed 'P2' in /in/kckUc on line 47 Notice: Use of undefined constant WALL - assumed 'WALL' in /in/kckUc on line 48 0 Notice: Undefined variable: y in /in/kckUc on line 34 Notice: Uninitialized string offset: 0 in /in/kckUc on line 34 Notice: Undefined variable: x in /in/kckUc on line 34 Fatal error: Cannot use string offset as an array in /in/kckUc on line 34
Process exited with code 255.