in prod/native/phpbridge_extension/code/AutoZvalFunctions.cpp [228:269]
void iteratePrintAutoZval(elasticapm::php::AutoZval const &val, RecursiveArrayVisitor_t const &arrayVisitor) {
auto recurse = [&](elasticapm::php::AutoZval const &v) { iteratePrintAutoZval(v, arrayVisitor); };
switch (val.getType()) {
case IS_ARRAY: {
std::cout << "array(" << val.getArrayCount() << "): {" << std::endl;
arrayVisitor(val, recurse);
// for (auto const &element : val) {
// iteratePrintAutoZval(element, arrayVisitor);
// }
std::cout << '}' << std::endl;
break;
}
case IS_LONG:
std::cout << "long: " << val.getLong() << std::endl;
break;
case IS_DOUBLE:
std::cout << "double: " << val.getDouble() << std::endl;
break;
case IS_TRUE:
case IS_FALSE:
std::cout << "bool: " << val.getBoolean() << std::endl;
break;
case IS_STRING:
std::cout << '\'' << val.getStringView() << '\'' << std::endl;
break;
case IS_NULL:
std::cout << "isNull: " << val.isNull() << std::endl;
break;
case IS_OBJECT:
std::cout << "isObject: " << val.isObject() << std::endl;
break;
case IS_RESOURCE:
std::cout << "isResource: " << val.isResource() << std::endl;
break;
case IS_UNDEF:
std::cout << "isUndef: " << val.isUndef() << std::endl;
break;
default:
std::cout << "unknown type: " << val.getType() << std::endl;
}
}