想在对象中找到一个字符串,在网上找到这个代码,但似乎没有现成的工作,可以这么说:
private static function in_object($val, $obj) {
if($val == ""){
trigger_error("in_object expects parameter 1 must not empty", E_USER_WARNING);
return false;
}
if(!is_object($obj)){
$obj = (object)$obj;
}
foreach($obj as $key => $value){
if(!is_object($value) && !is_array($value)){
if(strpos($value,$val)!==FALSE){
return true;
}
}elseif(is_array($value)) {
if(in_array($val, $value)!==FALSE){
return true;
}
}else{
return self::in_object($val, $value);
}
}
return false;
}
它不会返回错误消息,屏幕只是保持空白。我正在搜索的对象将包括数组,它是我想要测试某些文本字符串的数组之一。
希望这有一个小错误,可以轻松修复。或许还有其他一些解决方案?
答案 0 :(得分:0)
你总是可以这样做,作为一种解决方法。
$string_to_find = 'find_me';
foreach ($obj as $property => $value) {
if ($property == $string_to_find) {
// You found the string
$found_string = $property;
}
if ($value == $string_to_find) {
// You found the string
$found_string = $value;
}
}
这将在属性或值上找到它。如果您不是100%确定将始终在有效对象上使用它,则应添加一些错误处理以防止出现问题。