本文整理汇总了C++中StringData::isValidVariableName方法的典型用法代码示例。如果您正苦于以下问题:C++ StringData::isValidVariableName方法的具体用法?C++ StringData::isValidVariableName怎么用?C++ StringData::isValidVariableName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringData
的用法示例。
在下文中一共展示了StringData::isValidVariableName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: f_extract
int64_t f_extract(CArrRef var_array, int extract_type /* = EXTR_OVERWRITE */,
CStrRef prefix /* = "" */) {
bool reference = extract_type & EXTR_REFS;
extract_type &= ~EXTR_REFS;
HPHP::VM::VarEnv* v = g_vmContext->getVarEnv();
if (!v) return 0;
int count = 0;
for (ArrayIter iter(var_array); iter; ++iter) {
String name = iter.first();
StringData* nameData = name.get();
switch (extract_type) {
case EXTR_SKIP:
if (v->lookup(nameData) != NULL) {
continue;
}
break;
case EXTR_IF_EXISTS:
if (v->lookup(nameData) == NULL) {
continue;
}
break;
case EXTR_PREFIX_SAME:
if (v->lookup(nameData) != NULL) {
name = prefix + "_" + name;
}
break;
case EXTR_PREFIX_ALL:
name = prefix + "_" + name;
break;
case EXTR_PREFIX_INVALID:
if (!nameData->isValidVariableName()) {
name = prefix + "_" + name;
}
break;
case EXTR_PREFIX_IF_EXISTS:
if (v->lookup(nameData) == NULL) {
continue;
}
name = prefix + "_" + name;
break;
default:
break;
}
nameData = name.get();
// skip invalid variable names, as in PHP
if (!nameData->isValidVariableName()) {
continue;
}
g_vmContext->setVar(nameData, iter.nvSecond(), reference);
count++;
}
return count;
}