高分求助,不懂php,请帮忙看看这个函数哪里有问题

mydearbaby 2011-04-05 02:05:06


function my_tplname( $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];
}




没学过php,但是学过其他的编程语言,一时半会儿搞不懂这个函数是什么意思,也不知道哪里错了
注释掉的部分有问题,加上注释掉的部分,程序不能运行,去掉就可以,请高手指点。或者整个函数哪里有不规范的地方,也可以指出来。如果可用,可以加分,高分感谢。

另外,有可以zend解密的高手没,有两个php文件,解密后看函数名和变量名,好像都夹杂了一些东西,但是程序又可以运行,不知道有影响没。有能规范解密的,可说一下,高分感谢
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mydearbaby 2011-04-05
  • 打赏
  • 举报
回复
觉得注释部分是有点重复,但不敢肯定。谢谢楼上两位。
ImN1 2011-04-05
  • 打赏
  • 举报
回复
还是打字慢……呵呵
ImN1 2011-04-05
  • 打赏
  • 举报
回复
function my_tplname( $cnstr, $cnode, $addno = 0 )//$addno没有传入值时默认为0
{
$var = defined( "WAP_MODE" ) ? "wtpls" : "tpls";//常量WAP_MODE已经定义时$var赋值为wtpls,未定义时为tpls
if ( !empty( $cnode[$var] ) )
{
$var = explode( ",", $cnode[$var] );//按上面$var的定义切开
}
/*if ( empty( $var = explode( ",", $cnode[$var] )[$addno] ) )
{
return "";
}*/
return $var[$addno];//返回切开后的第n个值,默认0,就是第一个值
}


注释部分与其他部分其实是理解上是重复的,但写法不符合php规范…… “表达式[标签]”的写法php难以解析
乌镇程序员 2011-04-05
  • 打赏
  • 举报
回复
if (empty($var[$addno]))
乌镇程序员 2011-04-05
  • 打赏
  • 举报
回复
//明白了,不是empty()的问题,应该这样:
//explode()函数返回的是个布尔值,进行[]运算必须报错。
$var = explode( ",", $cnode[$var]);
if (empty($var[$addno]) ...
乌镇程序员 2011-04-05
  • 打赏
  • 举报
回复
//这样试试:
if (!isset($var = explode(',',$cnode[$var])[$addno])) {
return '';
}

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧