Если я пытаюсь получить переменную типа $var[1]
или $var['rew']
, встроенный сервер php просто останавливается в следующие 30 секунд без каких-либо ошибок или причин.
Windows 10 x64 и PHP7.2 VC15 TS x64 установлены
<?php
final class eArray implements ArrayAccess
{
private $container = [];
public function __construct($data = [])
{
if (is_iterable($data) && count($data) > 0) {
foreach ($data as $id => $value) {
$this->container[$id] = $value;
}
} else {
$this->container[] = $data;
}
}
public function offsetExists($offset)
{
$this->isOffsetScalar($offset);
return isset($this[$offset]);
}
public function offsetGet($offset)
{
$this->isOffsetScalar($offset);
if ($this->offsetExists($offset)) {
return $this->container[$offset];
}
throw new Exception('Item with `' . $offset . '` key not found!');
}
public function offsetSet($offset, $value)
{
$this->isOffsetScalar($offset);
$this->container[$offset] = $value;
}
public function offsetUnset($offset)
{
$this->isOffsetScalar($offset);
if ($this->offsetExists($offset)) {
throw new Exception('Item with `' . $offset . '` key not found!');
}
unset($this->container[$offset]);
}
private function isOffsetScalar($offset)
{
if (! is_scalar($offset)) {
throw new Exception('Key must be scalar! `' . gettype($offset) . '` given.');
}
}
public function __debugInfo()
{
return $this->container;
}
}
$i = new eArray('wfee');
$i[3] = 4;
unset($i[3]); // Here dies
var_dump($i);
$dd = new eArray(['wfeg',4,6]);
unset($dd[2]); // Here to
echo $dd[1]; // And here
var_dump($dd);
Я просто пытаюсь написать собственную реализацию массива;
И только для stackoverflow:
Похоже, мой пост в основном состоит из кода, да, верно, сколько слов нужно, чтобы опубликовать его? О, этого достаточно.