Explode() expects a string

时间:2011-08-24 作者:Nick

我当前收到以下错误:

Warning: explode() expects parameter 2 to be string, object given in D:\\...\\portfolio.php on line 12
这是我的portofolio。php:

<?php 
    $current = get_the_category(); 
    $current_id= $current[0] ->cat_ID; 
    $categs_list = get_category_parents($current_id);
    $pieces = explode("/", $categs_list);  //this is line 12.
    $category_name = strtolower($pieces[0]);
    $categs = get_cat_id($category_name);
    ?>
有什么想法吗?PHP不是我的强项。

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

让我们从顶部开始:

  1. $current = get_the_category();

    这将返回array of objects, 每个类别一个对象。

  2. $current_id= $current[0] ->cat_ID;

    这将返回object, 上一个数组中的第一个对象

  3. $categs_list = get_category_parents($current_id);

    这将返回string, 但仅当当前类别有父类时;否则,它将返回传递给它的内容:这是object

    (看看问题出在哪里?)

  4. $pieces = explode("/", $categs_list);

    这需要string, 但正在返回错误,因为提供了object.

So, Conclusion:

您在属于以下类别的帖子中调用此代码:doesn\'t have any parents. 您需要编写一些回退代码来解释这种情况。

结束