PHP新建类问题分析及解决思路


  本文标签:php新建类,php新建文件

下面先给大家分析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
class Main{
 private $index;
 //构造方法,初始化数据
 public function __construct($index=)
 {
 $this->index=$index?$index:;
 }
 //ui函数include相应的包含文件
 public function ui()
 {
 if(empty($this->index)

------解决思路----------------------

!file_exists($this->index..inc))
 { 
 $this->index=start;
 }
 return $this->index..inc;
 } 
}

ps:php怎么创建文件?

php项目开发过程中,常常需要自动创建一些文件,如生成静态html,生成php缓存文件,生成txt文件等等 。下面就分享一下如何利用php程序创建文件,并向文件中写入内容 。

一个项目中,可能不止一次需要生成文件,因此我们可以定义一个函数,当需要创建文件时再来调用这个函数,即可 。

步骤一、定义函数writefile,用于以写的方式打开一个文件,文件不存在时自动创建,并向文件写入内容,代码如下 。

<?php
function writefile($fname,$str){
 $fp=fopen($fname,"w");
 fputs($fp,$str);
 fclose($fp);
}
?>

步骤二、函数的使用 。如创建test.txt文件,并写入内容“abc”,代码如下:

<?php
$filename=test.txt;
$str=abc;
writefile($filename,$str);
?>

通过上述两个步骤的操作,即可实现php创建文件的功能 。