我知道如何使用
如果我打印出
我错过了什么?
strpos
函数,它也按照预期工作,但是if
函数的返回值却不是如此。
一些代码:
foreach ($socialstream as $key => $social) {
//filtering in here
$result= $this->search_objects($social);
....
}
我的函数search_objects:
function search_objects($objects)
{
$filters = array('word', 'test');
foreach ($objects as $key => $value) {
if (is_array($value) || is_object($value)) {
$this->search_objects($value);
} else {
//look for faulty strings in value
foreach ($filters as $filter) {
if (!is_int($value) && strpos($value, $filter) !== false) {
return true;
}
}
}
}
return false;
}
如果我打印出
$result
,我总是得到false
,而不是if
函数中的true
。通过调试,我知道当针存在于干草堆中时,它进入了if
,只是没有返回结果。我错过了什么?
foreach
中添加var_dump(!is_int($value) && strpos($value, $filter) !== false);
,并查看每次迭代的输出。 - Amal Muralifalse
,对吗? - h2oooooooarray
类型提示,以提高安全性,例如function search_objects(array $objects)
。这将排除任何不是数组的内容(假设这正是您想要的)。 - halfer