jake,最近碰到一个问题,在MAIN中写函数的问题,

#1 aapill

JAKE问题是这样的,我建了一个网站,由于各个版本浏览器对CSS的支付有些差异,所以我想在各个版本下调用不同的CSS文件,这样需要判断IE的版本,判断代码好下:
public function browsertype(){
    if(strpos($_SERVER['HTTP_USER_AGENT'],"MSIE 8.0"))
         $css_path='css/default.css';
    elseif(strpos($_SERVER['HTTP_USER_AGENT'],"MSIE 6.0"))
    $css_path='css/ie6_default.css';
    else $css_path='css/firefox_default.css';
    return $css_path;
  }
但是我如何在MAIN的函数INDEX下将此函数加入呢,我的INDEX函数的代码很简单,就是调用INDEX.HTML,
我分别想把此段代码加入SPCONTROL下都没有成功,我知道在SMARTY下传递浏览器类型,但总不能再实例化SMARTY 这样的情况下在框架下如何完成呢,谢谢JAKE指教,SPEEDPHP的粉丝

2010-08-23 14:57:12

#2 jake

public function 不是普通函数的定义,是类的成员函数的定义方法。function browsertype(){}是函数的定义。

载入普通函数的定义后,再网站任何一个地方都可以调用这个函数。

如果是类的成员函数,那么你可以在你的控制器下加这个成员函数,然后通过$this->browsertype()来调用。

2010-08-23 15:42:05

#3 aapill

jake我是这样做的,但是没有显示,你看看我的代码对吗,我把它加入了MAIN中,使其成为MAIN的成员函数,然后在INDEX中进行了访问
class main extends spController
{   function index(){
       echo $this->browsertype();
           $this->display('index.html');
        }
    function show_products(){
        $show_products=spClass('goods');
        $this->products_type=$this->spArgs('type');
        $conditions=array("goods_series"=>$this->products_type);
        $this->result=$show_products->findALL($conditions);
        $this->display("index.html");
    }
    function show_contents(){
        $show_products=spClass('goods');
        $this->products_id=$this->spArgs('id');
        $conditions=array("id"=>$this->products_id);
        $this->result=$show_products->find($conditions);
        echo mb_detect_encoding($this->result);
        $this->result=mb_convert_encoding($this->result,"GB2312","UTF-8");
        echo mb_detect_encoding($this->result);
        $this->display('show_contents.html');
    }
   function browsertype(){
         if(strpos($_SERVER['HTTP_USER_AGENT'],"MSIE 8.0"))
             $css_path='css/default.css';
         elseif(strpos($_SERVER['HTTP_USER_AGENT'],"MSIE 6.0"))
             $css_path='css/ie6_default.css';
         else $css_path='css/firefox_default.css';
         return $css_path;
  }
}

2010-08-23 15:58:14

#4 aapill

谢谢JAKE的回复.

2010-08-23 16:01:28

#5 jake

jake我是这样做的,但是没有显示,你看看我的代码对吗,我把它加入了MAIN中,使其成为MAIN的成员函数,然后 ...
aapill 发表于 2010-8-23 15:58
这样就对了!

2010-08-23 20:37:48

#6 aapill

回复 5 jake


    jake这样做是对的,我得新调试了一遍,出现想要的结果了,再次感谢JAKE的回答,看来我还得真的要好好学习一下面向对象了,以前只是引用别人的,从来没写过面向对象的东西不行,还得动手实践才行

2010-08-24 08:48:48