Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对于未按预期使用对象的每个循环_Php_If Statement_Foreach - Fatal编程技术网

Php 对于未按预期使用对象的每个循环

Php 对于未按预期使用对象的每个循环,php,if-statement,foreach,Php,If Statement,Foreach,我在一个对象中循环,当一个对象键等于一个字符串时,它会发出回声。但是,在if语句中它不起作用 $get_categories = get_categories(); // gets an object (with the key) foreach ($get_categories as $key) { $each_cat = $key->name; echo $each_cat; // echoes 'beauty', 'celebrity', 'lifestyle'

我在一个对象中循环,当一个对象键等于一个字符串时,它会发出回声。但是,在
if语句中它不起作用

$get_categories = get_categories(); // gets an object (with the key)

foreach ($get_categories as $key) {
    $each_cat = $key->name;
    echo $each_cat; // echoes 'beauty', 'celebrity', 'lifestyle'
    if ($each_cat == 'fashion') { // this is FALSE, even though it prints 'fashion' above
        echo 'Yes, this is the fashion string'; // this does not get printed
    }
}
这就是它循环通过的对象:

ARRAY (SIZE=7)
  0 => 
    OBJECT(STDCLASS)[311]
      PUBLIC 'TERM_ID' => &STRING '9' (LENGTH=1)
      PUBLIC 'NAME' => &STRING 'BEAUTY' (LENGTH=6)
      PUBLIC 'SLUG' => &STRING 'BEAUTY' (LENGTH=6)
      PUBLIC 'TERM_GROUP' => STRING '0' (LENGTH=1)
      PUBLIC 'TERM_TAXONOMY_ID' => STRING '9' (LENGTH=1)
      PUBLIC 'TAXONOMY' => STRING 'CATEGORY' (LENGTH=8)
      PUBLIC 'DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'PARENT' => &STRING '0' (LENGTH=1)
      PUBLIC 'COUNT' => &STRING '1' (LENGTH=1)
      PUBLIC 'CAT_ID' => &STRING '9' (LENGTH=1)
      PUBLIC 'CATEGORY_COUNT' => &STRING '1' (LENGTH=1)
      PUBLIC 'CATEGORY_DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'CAT_NAME' => &STRING 'BEAUTY' (LENGTH=6)
      PUBLIC 'CATEGORY_NICENAME' => &STRING 'BEAUTY' (LENGTH=6)
      PUBLIC 'CATEGORY_PARENT' => &STRING '0' (LENGTH=1)
  1 => 
    OBJECT(STDCLASS)[310]
      PUBLIC 'TERM_ID' => &STRING '11' (LENGTH=2)
      PUBLIC 'NAME' => &STRING 'CELEBRITY' (LENGTH=9)
      PUBLIC 'SLUG' => &STRING 'CELEBRITY' (LENGTH=9)
      PUBLIC 'TERM_GROUP' => STRING '0' (LENGTH=1)
      PUBLIC 'TERM_TAXONOMY_ID' => STRING '11' (LENGTH=2)
      PUBLIC 'TAXONOMY' => STRING 'CATEGORY' (LENGTH=8)
      PUBLIC 'DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'PARENT' => &STRING '0' (LENGTH=1)
      PUBLIC 'COUNT' => &STRING '3' (LENGTH=1)
      PUBLIC 'CAT_ID' => &STRING '11' (LENGTH=2)
      PUBLIC 'CATEGORY_COUNT' => &STRING '3' (LENGTH=1)
      PUBLIC 'CATEGORY_DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'CAT_NAME' => &STRING 'CELEBRITY' (LENGTH=9)
      PUBLIC 'CATEGORY_NICENAME' => &STRING 'CELEBRITY' (LENGTH=9)
      PUBLIC 'CATEGORY_PARENT' => &STRING '0' (LENGTH=1)
  3 => 
    OBJECT(STDCLASS)[308]
      PUBLIC 'TERM_ID' => &STRING '4' (LENGTH=1)
      PUBLIC 'NAME' => &STRING 'FASHION' (LENGTH=7)
      PUBLIC 'SLUG' => &STRING 'FASHION' (LENGTH=7)
      PUBLIC 'TERM_GROUP' => STRING '0' (LENGTH=1)
      PUBLIC 'TERM_TAXONOMY_ID' => STRING '4' (LENGTH=1)
      PUBLIC 'TAXONOMY' => STRING 'CATEGORY' (LENGTH=8)
      PUBLIC 'DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'PARENT' => &STRING '0' (LENGTH=1)
      PUBLIC 'COUNT' => &STRING '4' (LENGTH=1)
      PUBLIC 'CAT_ID' => &STRING '4' (LENGTH=1)
      PUBLIC 'CATEGORY_COUNT' => &STRING '4' (LENGTH=1)
      PUBLIC 'CATEGORY_DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'CAT_NAME' => &STRING 'FASHION' (LENGTH=7)
      PUBLIC 'CATEGORY_NICENAME' => &STRING 'FASHION' (LENGTH=7)
      PUBLIC 'CATEGORY_PARENT' => &STRING '0' (LENGTH=1)
  5 => 
    OBJECT(STDCLASS)[306]
      PUBLIC 'TERM_ID' => &STRING '10' (LENGTH=2)
      PUBLIC 'NAME' => &STRING 'LIFESTYLE' (LENGTH=9)
      PUBLIC 'SLUG' => &STRING 'LIFESTYLE' (LENGTH=9)
      PUBLIC 'TERM_GROUP' => STRING '0' (LENGTH=1)
      PUBLIC 'TERM_TAXONOMY_ID' => STRING '10' (LENGTH=2)
      PUBLIC 'TAXONOMY' => STRING 'CATEGORY' (LENGTH=8)
      PUBLIC 'DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'PARENT' => &STRING '0' (LENGTH=1)
      PUBLIC 'COUNT' => &STRING '3' (LENGTH=1)
      PUBLIC 'CAT_ID' => &STRING '10' (LENGTH=2)
      PUBLIC 'CATEGORY_COUNT' => &STRING '3' (LENGTH=1)
      PUBLIC 'CATEGORY_DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'CAT_NAME' => &STRING 'LIFESTYLE' (LENGTH=9)
      PUBLIC 'CATEGORY_NICENAME' => &STRING 'LIFESTYLE' (LENGTH=9)
      PUBLIC 'CATEGORY_PARENT' => &STRING '0' (LENGTH=1)
  6 => 
    OBJECT(STDCLASS)[305]
      PUBLIC 'TERM_ID' => &STRING '1' (LENGTH=1)
      PUBLIC 'NAME' => &STRING 'NONE' (LENGTH=4)
      PUBLIC 'SLUG' => &STRING 'NONE' (LENGTH=4)
      PUBLIC 'TERM_GROUP' => STRING '0' (LENGTH=1)
      PUBLIC 'TERM_TAXONOMY_ID' => STRING '1' (LENGTH=1)
      PUBLIC 'TAXONOMY' => STRING 'CATEGORY' (LENGTH=8)
      PUBLIC 'DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'PARENT' => &STRING '0' (LENGTH=1)
      PUBLIC 'COUNT' => &STRING '2' (LENGTH=1)
      PUBLIC 'CAT_ID' => &STRING '1' (LENGTH=1)
      PUBLIC 'CATEGORY_COUNT' => &STRING '2' (LENGTH=1)
      PUBLIC 'CATEGORY_DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'CAT_NAME' => &STRING 'NONE' (LENGTH=4)
      PUBLIC 'CATEGORY_NICENAME' => &STRING 'NONE' (LENGTH=4)
      PUBLIC 'CATEGORY_PARENT' => &STRING '0' (LENGTH=1)
  8 => 
    OBJECT(STDCLASS)[303]
      PUBLIC 'TERM_ID' => &STRING '16' (LENGTH=2)
      PUBLIC 'NAME' => &STRING 'TOP' (LENGTH=3)
      PUBLIC 'SLUG' => &STRING 'TOP' (LENGTH=3)
      PUBLIC 'TERM_GROUP' => STRING '0' (LENGTH=1)
      PUBLIC 'TERM_TAXONOMY_ID' => STRING '16' (LENGTH=2)
      PUBLIC 'TAXONOMY' => STRING 'CATEGORY' (LENGTH=8)
      PUBLIC 'DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'PARENT' => &STRING '0' (LENGTH=1)
      PUBLIC 'COUNT' => &STRING '2' (LENGTH=1)
      PUBLIC 'CAT_ID' => &STRING '16' (LENGTH=2)
      PUBLIC 'CATEGORY_COUNT' => &STRING '2' (LENGTH=1)
      PUBLIC 'CATEGORY_DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'CAT_NAME' => &STRING 'TOP' (LENGTH=3)
      PUBLIC 'CATEGORY_NICENAME' => &STRING 'TOP' (LENGTH=3)
      PUBLIC 'CATEGORY_PARENT' => &STRING '0' (LENGTH=1)
  9 => 
    OBJECT(STDCLASS)[302]
      PUBLIC 'TERM_ID' => &STRING '8' (LENGTH=1)
      PUBLIC 'NAME' => &STRING 'TRENDS' (LENGTH=6)
      PUBLIC 'SLUG' => &STRING 'TRENDS' (LENGTH=6)
      PUBLIC 'TERM_GROUP' => STRING '0' (LENGTH=1)
      PUBLIC 'TERM_TAXONOMY_ID' => STRING '8' (LENGTH=1)
      PUBLIC 'TAXONOMY' => STRING 'CATEGORY' (LENGTH=8)
      PUBLIC 'DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'PARENT' => &STRING '4' (LENGTH=1)
      PUBLIC 'COUNT' => &STRING '1' (LENGTH=1)
      PUBLIC 'CAT_ID' => &STRING '8' (LENGTH=1)
      PUBLIC 'CATEGORY_COUNT' => &STRING '1' (LENGTH=1)
      PUBLIC 'CATEGORY_DESCRIPTION' => &STRING '' (LENGTH=0)
      PUBLIC 'CAT_NAME' => &STRING 'TRENDS' (LENGTH=6)
      PUBLIC 'CATEGORY_NICENAME' => &STRING 'TRENDS' (LENGTH=6)
      PUBLIC 'CATEGORY_PARENT' => &STRING '4' (LENGTH=1)
尝试

这里
$key
是数组索引
0,1,2…
$val
是作为对象的那些键的对应值

因此,在本例中,执行
$key->name
不会返回任何内容

if ($each_cat == 'fashion') 

代码块是正确的,因为您的echo显示它们都是小写的,如果您查看变量dump,它们都是大写的,包括PUBLIC、Key name等。它们不应该大写

‘时尚’fashion‘try:
if(strtolower($each_cat)=‘fashion’){
是的,很好的一点,区分大小写也需要注意!!小写的字符串可以工作。但是要反转它,
$each_cat=='FASHION'
返回false?你能再次检查它在返回的数组中是否不在小写吗?对不起,我不明白?如果数组返回的是大写的'FASHION',我如何将它与strin进行比较g'FASHION'返回false?但是通过使数组小写,可以将其与'FASHION'进行比较?
if ($each_cat == 'fashion')