您好,欢迎访问一九零五行业门户网

【帮分析】这样用OOP是错误的吗?PHP的一个OOP报错~

作用:根据指定id返回数据(网址)
代码:
table('goods'). g . left join .self::$ecs->table('category'). c on g.cat_id=c.cat_id . where g.goods_id='$goods_id' ; $rs = self::$db->getrow($sql); $arr = array(); if(!empty($rs)) { $arr['savepath'] = ($rs['g_is_show'] == 1 && $rs['c_is_show'] == 1) ? '/product/'.($rs['file_dir'] ? $rs['file_dir']:$rs['cat_id']).'/'.$rs['goods_id'].'.html' : ''; $arr['remoteurl'] = '/goods.php?id='.$rs['goods_id']; } return $arr; } //表 category public function category($cat_id,$page = 1) { $sql = select c.cat_id,c.file_dir,c.parent_id,c.is_show . from .self::$ecs->table('category'). c . where c.cat_id='$cat_id' ; $rs = self::$db->getrow($sql); $arr = array(); if(!empty($rs)) { $arr['savepath'] = $rs['is_show'] == 1 ? '/product/'.($rs['file_dir'] ? $rs['file_dir']:$rs['cat_id']).'/index'.($page > 0 ? '-'.$page:'').'.html':''; $arr['remoteurl'] = '/category.php?id='.$rs['cat_id'].'&page='.$page; } return $arr; } //表article public function article($article_id) { $sql = select a.article_id,c.cat_id,c.file_dir,c.is_open as c_is_open . from .self::$ecs->table('article'). a . left join .self::$ecs->table('article_cat'). c on a.cat_id=c.cat_id . where a.article_id='$article_id' ; $rs = self::$db->getrow($sql); $arr = array(); if(!empty($rs)) { $arr['savepath'] = $rs['is_open'] == 1 ? '/article/'.($rs['file_dir'] ? $rs['file_dir']:$rs['cat_id']).'/'.$rs['article_id'].'.html' : ''; $arr['remoteurl'] = '/article.php?id='.$rs['article_id']; } return $arr; } //表 public function articlecat($cat_id,$page = 1) { $sql = select c.cat_id,c.file_dir,c.parent_id . from .self::$ecs->table('article_cat'). c . where c.cat_id='$cat_id' ; $rs = self::$db->getrow($sql); $arr = array(); if(!empty($rs)) { $arr['savepath'] = '/article/'.($rs['file_dir'] ? $rs['file_dir']:$rs['cat_id']).'/index'.($page > 0 ? '-'.$page:'').'.html'; $arr['remoteurl'] = '/article_cat.php?id='.$rs['cat_id'].'&page='.$page; } return $arr; }}
用法:
$arr = urlpath::goods(1024);print_arr($arr);
另外:开头有一个报错,不能这样写?  procted $db = $globals['db'];
提问:
一:我想使用urlpath::goods($goods_id) 这样的方式获得指定的网址和静态地址,
如何在“类” urlpath 中不初始化这个类就可以使用公用的 $db 和 $ecs ?
二:我的这个写法是不是有点问题?~ 另外那里为什么会报错了?以前貌似可以这样写。?
回复讨论(解决方案) 类变量不能使用变量的值来声明,需要额外写一个架构函数__construct来赋值
楼上说的对。
其它类似信息

推荐信息