Подтвердить что ты не робот

Как PHP обрабатывает переменные?

Я разработчик PHP с многих лет, но я не знаю только одной детали того, как PHP обрабатывает переменные и их типы за кулисами. Я имею в виду: в PHP - теоретически - я мог бы использовать одну и ту же переменную для хранения целого числа, а затем строку, а затем логическую, а затем массив... и т.д.

Лично я ненавижу этот способ "плохого" программирования, но мне интересно, как PHP может хранить и управлять переменными и их типами, как я спросил. Я предполагаю, что интерпретатор создает и обрабатывает переменные C позади, но я не могу понять, как это сделать.

Спасибо.

4b9b3361

Ответ 1

За кулисами переменные PHP хранятся в структуре "zval", которая состоит из объединения между всеми типами данных, которые может хранить переменная (например, длинный, двойной, указатель/длина строки, указатель объекта...) и несколько других полей вне объединения, которые указывают, какой тип он есть, и отслеживать счетчик ссылок.

Далее обсуждалось следующее:

http://devzone.zend.com/317/extension-writing-part-ii-parameters-arrays-and-zvals/

Ответ 2

Если я правильно помню, PHP будет инициировать несколько переменных в памяти для каждой переменной в PHP:

$test = 0;

Переводит на...

int test = 0;
float test = 0;
char test = 0;
bool test = false;
pointer test = null;
...