Php 为foreach()提供的错误带_标记()和无效参数
在我的代码中,booklist是一种自定义的post类型,booklink作为自定义字段。此图书列表是自定义post类型图书的postobject 我一直在犯这个错误 strip_tags()希望参数1是第11行的字符串 为第12行的foreach()提供的参数无效Php 为foreach()提供的错误带_标记()和无效参数,php,Php,在我的代码中,booklist是一种自定义的post类型,booklink作为自定义字段。此图书列表是自定义post类型图书的postobject 我一直在犯这个错误 strip_tags()希望参数1是第11行的字符串 为第12行的foreach()提供的参数无效 此处将$booklist视为字符串(返回字符串) 然后作为一个数组 foreach ($booklist as $post) : 你不能那样做foreach需要一个数组 您需要做的是(假设get\u field返回一个数组,因为它
此处将
$booklist
视为字符串(返回字符串)
然后作为一个数组
foreach ($booklist as $post) :
你不能那样做foreach
需要一个数组
您需要做的是(假设get\u field
返回一个数组,因为它显然没有返回字符串),在数组中循环并在那里运行函数
$booklist = get_field('booklist');
foreach ($booklist as $post) :
$post = strip_tags($post);
我添加了
endforeach
并删除了get\u字段的带标签代码,解决了这个问题。那么问题出在哪里?很明显,get\u field('booklist')
生成一个对象,strip\u tags
需要一个字符串,strip\u tags
返回一个字符串,或者在出现错误时FALSE
,但是foreach
需要一个数组。这不是真的,可以使用foreach()在一个字符串上,每次迭代都会得到一个字符。这里的问题是传递给strip_tags
(get_field(“…”)
)的参数在本例中返回类似null(可能未定义?)的其他值。您只需使用检查get\u字段的返回值即可!是字符串(),你可能想把它拆分成一个数组(explode(',',,get_field('bookmarks'))
),你有一个数组要迭代(我猜这个字段有一个来自wordpress后端的文本值)@Torben,而你确实可以将字符串作为数组逐个字符地解析,我严重怀疑这是这里的用例(这种用法很少见)。该函数可以返回null,但是为什么要foreach
它呢?不管怎样,我们都不知道get\u result
实际做了什么。OP应该给我们一些启发
foreach ($booklist as $post) :
$booklist = get_field('booklist');
foreach ($booklist as $post) :
$post = strip_tags($post);