<?php
$states = json_decode('[[[1,0,1],[1,1,0]],[[1,1],[1,0,1]]]');
$state = 0;
$tape = array(1, 1, 1);
$zend7lol = substr(phpversion(), 0, 1) == 7
&& substr(phpversion(), -5) != '-hhvm';
$tape[] = 0;
foreach ($tape as $k => &$v) {
if (is_null($state)) {
echo "stopping\n";
break;
}
var_dump($tape);
@list ($v, $d, $state) = $states[$state][$v];
var_dump($tape);
if ($d) {
//var_dump(count($tape), $k);
if (count($tape) - $k < 3) {
$p = $tape;
end($tape);
$tape[] = 0;
unset($p);
}
} elseif ($k) {
$r = $tape; prev($r); if (!$zend7lol) prev($r); $tape = $r; unset($r);
} else {
array_unshift($tape, 0);
if ($zend7lol) {
$lol = $tape;
reset($tape);
unset($lol);
}
}
}
unset($v);
var_dump($tape);
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.26, 7.3.0 - 7.3.13, 7.4.0 - 7.4.1
- array(4) {
[0]=>
&int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
int(0)
}
array(4) {
[0]=>
&int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
int(0)
}
array(4) {
[0]=>
int(1)
[1]=>
&int(1)
[2]=>
int(1)
[3]=>
int(0)
}
array(4) {
[0]=>
int(1)
[1]=>
&int(1)
[2]=>
int(1)
[3]=>
int(0)
}
array(4) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
&int(1)
[3]=>
int(0)
}
array(4) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
&int(1)
[3]=>
int(0)
}
array(5) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
&int(0)
[4]=>
int(0)
}
array(5) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
&int(1)
[4]=>
int(0)
}
array(5) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
&int(1)
[3]=>
int(1)
[4]=>
int(0)
}
array(5) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
&int(1)
[3]=>
int(1)
[4]=>
int(0)
}
array(5) {
[0]=>
int(1)
[1]=>
&int(1)
[2]=>
int(1)
[3]=>
int(1)
[4]=>
int(0)
}
array(5) {
[0]=>
int(1)
[1]=>
&int(1)
[2]=>
int(1)
[3]=>
int(1)
[4]=>
int(0)
}
array(5) {
[0]=>
&int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
int(1)
[4]=>
int(0)
}
array(5) {
[0]=>
&int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
int(1)
[4]=>
int(0)
}
array(6) {
[0]=>
&int(0)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
int(1)
[4]=>
int(1)
[5]=>
int(0)
}
array(6) {
[0]=>
&int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
int(1)
[4]=>
int(1)
[5]=>
int(0)
}
stopping
array(6) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
int(1)
[4]=>
int(1)
[5]=>
int(0)
}
preferences:
123.49 ms | 406 KiB | 157 Q