Php if语句检查某些未定义对象的值

时间:2015-07-09 21:48:48

标签: php oop if-statement smarty

我正在使用smarty模板系统,我正在尝试为if语句执行此操作

{if isset($left_column_size) && !empty($left_column_size) && $category->name ne "Health"}

这样可行,但如果没有为给定页面设置类别对象,我会收到php通知:
未定义的索引:类别
试图获得非对象的属性

我真正想要的是以下内容

{if isset($left_column_size) && !empty($left_column_size) {if isset($category)}&& $category->name ne "Health"{/if}}

如果我尝试这个,我得到错误Smarty编译器:模板代码中的语法错误太多的速记属性。有谁知道在这里做正确的事情摆脱那些PHP错误通知是什么?感谢

2 个答案:

答案 0 :(得分:1)

看起来你走在正确的轨道上。尝试这些方面的东西

if(!empty($left_column_size) &&
  ((!empty($category) && $category->name ne "Health") 
    || empty($category))

答案 1 :(得分:0)

我最终解决了这个问题:

{if isset($left_column_size) && !empty($left_column_size) && 
( empty($category) || (!empty($category) &&$category->name ne "Health Topics"))}