function abc($cnstr,&$cnode,$addno = 0)
{
$var = defined( 'WAP_MODE' ) ? 'wtpls' : 'tpls';
if (!empty($cnode[$var]))
{
$$var = explode(',',$cnode[$var]);
}
     if (empty($$var = explode(',',$cnode[$var])[$addno])) //这里报错,错误如下
{
return '';
}

return $$var[$addno];
}
上面那一行 报错
Parse error: syntax error, unexpected '=', expecting ')' in 出现这个错误 什么原因

解决方案 »

  1.   

    if (empty($$var = explode(',',$cnode[$var])[$addno])) )少了一个)
      

  2.   

    看这里,前几天的帖子http://topic.csdn.net/u/20110405/14/34ea6751-03c4-481e-8acf-f1c2a4f09d29.html
      

  3.   


    function abc($cnstr,&$cnode,$addno = 0)
    {
                    $var = defined( 'WAP_MODE' ) ? 'wtpls' : 'tpls';
                    if (!empty($cnode[$var]))
                    {
                                    $$var = explode(',',$cnode[$var]);
                    }
    // 解密函数的错误吧,程序逻辑明显应该是,如果empty($$var[$addno])空的话,返回空
    $$var = explode(',',$cnode[$var]);
                    if (empty($$var[$addno])) //这里报错,错误如下
                    {
                                    return '';
                    }
                    
                    return $$var[$addno];
    }
      

  4.   

    +++
     if (empty($$var = explode(',',$cnode[$var])[$addno])) //这里报错,错误如下
    这句等于
    先分解数组给$$var = explode(',',$cnode[$var]);
    if(empth($$var)[$addno])这个结构在逻辑上就是错误的!
      

  5.   

    1、就语法而言
    if (empty($$var = explode(',',$cnode[$var])[$addno])) //这里报错,错误如下
    Parse error: syntax error, unexpected '=', expecting ')' in 出现这个错误 什么原因
    解析错误:语法错误,意想不到的'=',需要')'
    括号位置有问题,至少需要
    if (empty($$var = explode(',',$cnode[$var][$addno])))2、对于函数 empty 手册中说
    注意: 由于这是一个语言结构而非函数,因此它无法被变量函数调用。
    观察如下事实:
    $a = 0;
    if(empty($a)) echo 'y';
    输出 y

    if(empty($a=0)) echo 'y';
    出错:Parse error: syntax error, unexpected '=', expecting ')'