【问题标题】:Why does "isset($a[0]) and unset($a[0]);" cause syntax error?为什么“isset($a[0]) 和 unset($a[0]);”导致语法错误?
【发布时间】:2015-09-03 14:39:49
【问题描述】:

我的代码:

$a = [];
isset($a[0]) and unset($a[0]);

它显示 "syntax error, unexpected 'unset' (T_UNSET)"

但是

$a = [];
isset($a[0]) and exit();

有效!

exit()unset() 都没有返回值。为什么一个有效,另一个无效?

【问题讨论】:

  • 你能分享你的错误信息吗?
  • exit 没有返回值,因为程序退出
  • 代码这么丑,你到底想干什么?
  • @AmbalMani '语法错误,意外'未设置' (T_UNSET)'

标签: php unset


【解决方案1】:

unset 是一种语言结构,而不是真正的函数(这就是为什么你会得到 T_UNSET 而不是更通用的术语),因此它不会像普通函数那样按照相同的规则运行。 issetexit 也是语言结构,但它们的行为更像普通函数。

【讨论】:

    【解决方案2】:

    正如我在 cmets 中询问的那样,您说要从 Array 中删除一个值,

    为什么不简单地写

    $a = [];
    if(isset($a[0])){
    unset($a[0]);
    // And exit() if you want to
    }
    

    【讨论】:

    • 因为这是一种简单的书写和阅读方式……否则,将来编写您的代码的程序员会说您的坏话:P
    猜你喜欢
    • 1970-01-01
    • 2017-03-12
    • 2016-06-02
    • 2013-08-24
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2014-01-05
    • 2013-01-26
    相关资源
    最近更新 更多