zval - внутренняя структура Zend Engine для хранения любого значения PHP. Содержит: тип данных, само значение, счетчик ссылок (refcount) и флаги.
// Структура (упрощенно):
// typedef struct {
// zend_value value; // union: long, double, string, array...
// uint32_t type_info; // тип + флаги
// } zval;С PHP 7 zval стал 16 байт (вместо 48 в PHP 5). Скаляры хранятся прямо в zval, сложные типы (string, array, object) - через указатель с refcount. Это дало прирост производительности 2-3x.