Я наткнулся на кусок кода, используя различные методы запутывания, и, в основном из-за любопытства, пытался понять методы, которые он использует.
Я проделал некоторую работу над этим, но сейчас я не до конца понимаю, что он делает:
public $x1528 = null;
public $x153c = null;
function __construct()
{
$this->x1528 = new \StdClass();
$this->x153c = new \StdClass();
$this->x1528->x21a9 = "getSingleton";
$this->x1528->x1569 = "x1565";
$this->x1528->x1e45 = "x1e40";
$this->x153c->x3b3b = "x3b38";
$this->x1528->x16c3 = "x16c2";
$this->x1528->x1bec = "x1be8";
$this->x1528->x245a = "x2455";
$this->x1528->x1b14 = "x10d7";
$this->x153c->x36d4 = "x36d2";
$this->x1528->x24d6 = "getSingleton";
$this->x1528->x1876 = "xf0f";
$this->x1528->x2901 = "x2900";
$this->x1528->x1877 = "x1876";
$this->x153c->x335b = "x3356";
$this->x1528->x2836 = "x2833";
$this->x1528->x2119 = "x2115";
$this->x1528->x18bb = "xf3d";
$this->x153c->x349e = "x349a";
$this->x1528->x2383 = "getData";
$this->x1528->x17b1 = "x5f2";
$this->x153c->x2d06 = "xf41";
$this->x1528->x1f35 = "x1f30";
$this->x1528->x1a93 = "x1138";
$this->x1528->x1d79 = "x1d76";
$this->x1528->x1d7c = "x1d79";
$this->x153c->x3248 = "_isAllowed";
...
[it keeps going for a while...]
Таким образом, он объявляет пустые переменные, генерирует пустые объекты, а затем сохраняет строки и ссылки на другие переменные, но …
например,
$ this-> x1528-> x21a9 = «getSingleton»;
Что такое x21a9 ? Там нет нигде ссылки на это, и я подумал x1528 переменная была пуста? Кроме того, это способ ссылки на $ x1528 без $, потому что я никогда не видел этот синтаксис раньше.
Это использование техник PHP, о которых я не знал, и это сделало меня очень любопытным. Любая помощь ?
Не видя весь код, трудно сказать. Но в основном это просто «бред», затрудняющий чтение, но, тем не менее, базовый PHP.
Что такое x21a9?
Это просто случайное свойство, установленное на $x1528
учебный класс. Подобно:
$dummyClass = new StdClass(); // Same as $this->x1528 = new \StdClass();
$dummyClass->foo = "bar"; // Same as $this->x1528->x21a9 = "getSingleton";
Сейчас, echo $dummyClass->foo
вернется bar
, Это просто установка свойства со значением, но с «загадочными» именами.
Я думал, что переменная x1528 была пуста?
Он начинается пустым в начале класса, но затем в конструкторе он сразу же устанавливается как экземпляр StdClass
:
$this->x1528 = new \StdClass();
Кроме того, это способ ссылки на $ x1528 без $, потому что я никогда не видел этот синтаксис раньше.
Это основной синтаксис для объектов. Сам объект имеет $
перед ним, но свойства не делают.
Других решений пока нет …