#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
#6 aapill
回复 5 jake jake这样做是对的,我得新调试了一遍,出现想要的结果了,再次感谢JAKE的回答,看来我还得真的要好好学习一下面向对象了,以前只是引用别人的,从来没写过面向对象的东西不行,还得动手实践才行
2010-08-24 08:48:48