Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php类新建的有关问题

php类新建的有关问题

WBOY
WBOYasal
2016-06-13 12:27:35857semak imbas

php类新建的问题
index.php文件
function __autoload($_className) {
require $_className.'.class.php';
}
//新建类??
if (isset($_GET['index'])) {
$m=new Main($_GET['index']);
}else{
$m=new Main();

}
include $m->ui();

main.class.php文件

class Main{
private $index;
//构造方法,初始化数据
public function __construct($index=''){
$this->index=$index;
}
//ui函数include相应的包含文件
public function ui(){
if(empty($this->index)||!file_exists($this->index.'.inc')){ 
$this->index='start';
}
return $this->index.'.inc';
}
}
红字的部分有啥意义了:类中构造函数传参值已设默认是空(public function __construct($index='')),为啥不能直接写$m=new Main($_GET['index']);。如果不想在index做红字的if判断,类里需要怎么写了。谢谢,不是太理解
------解决思路----------------------
if (isset($_GET['index'])) {
  $m=new Main($_GET['index']); //如果 $_GET['index'] 存在则将 $_GET['index'] 作为参数
}else{
  $m=new Main(); //否则使用默认参数
}

直接使用 $_GET['index'] 将可能引发 NOTICE 级别错误
不加区别的使用传入数据,可能引发安全问题
------解决思路----------------------
稍微改了一下你看咋样。

<?php<br />class Main{<br /><br />	private $index;<br /><br />	//构造方法,初始化数据<br />	public function __construct($index='')<br />	{<br />		$this->index=$index?$index:'';<br />	}<br /><br />	//ui函数include相应的包含文件<br /><br />	public function ui()<br />	{<br />		if(empty($this->index)<br><font color='#FF8000'>------解决思路----------------------</font><br>!file_exists($this->index.'.inc'))<br />		{ <br />			$this->index='start';<br />		}<br /><br />		return $this->index.'.inc';<br />	} <br />}

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn