首页 > 开发 > PHP > 正文

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

2024-05-04 23:40:31
字体:大 中 小
来源:转载
供稿:网友

这篇文章给大家介绍php新建类相关问题分析及解决办法,涉及到php新建类相关知识,本文介绍的非常详细,非常具有参考借鉴价值特此分享供大家参考

下面先给大家分析php新建类的问题

index.php文件

 

 
  1. function __autoload($_className) { 
  2. require $_className.'.class.php'; 
  3. } 
  4. <span style="color: #ff0000">//新建类?? 
  5. if (isset($_GET['index'])) { 
  6. $m=new Main($_GET['index']); 
  7. }else{ 
  8. $m=new Main(); 
  9. </span>} 
  10. include $m->ui(); 

main.class.php文件

 

 
  1. class Main{ 
  2. private $index; 
  3. //构造方法,初始化数据 
  4. public function __construct($index=''){ 
  5. $this->index=$index; 
  6. } 
  7. //ui函数include相应的包含文件 
  8. public function ui(){ 
  9. if(empty($this->index)||!file_exists($this->index.'.inc')){  
  10. $this->index='start'; 
  11. } 
  12. return $this->index.'.inc'; 
  13. }  
  14. } 

红字的部分有啥意义了

:类中构造函数传参值已设默认是空(public function __construct($index='')),为啥不能直接写$m=new Main($_GET['index']);。如果不想在index做红字的if判断,类里需要怎么写了。谢谢,不是太理解

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

 

 
  1. if (isset($_GET['index'])) { 
  2. $m=new Main($_GET['index']); //如果 $_GET['index'] 存在则将 $_GET['index'] 作为参数 
  3. }else{ 
  4. $m=new Main(); //否则使用默认参数 
  5. } 

直接使用 $_GET['index'] 将可能引发 NOTICE 级别错误

不加区别的使用传入数据,可能引发安全问题

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

稍微改了一下你看咋样。

 

 
  1. <?php 
  2. class Main{ 
  3. private $index; 
  4. //构造方法,初始化数据 
  5. public function __construct($index='') 
  6. { 
  7. $this->index=$index?$index:''; 
  8. } 
  9. //ui函数include相应的包含文件 
  10. public function ui() 
  11. { 
  12. if(empty($this->index) 

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

 

 
  1. !file_exists($this->index.'.inc')) 
  2. {  
  3. $this->index='start'; 
  4. } 
  5. return $this->index.'.inc'; 
  6. }  
  7. } 

ps:php怎么创建文件?

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

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

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

 

 
  1. <?php 
  2. function writefile($fname,$str){ 
  3. $fp=fopen($fname,"w"); 
  4. fputs($fp,$str); 
  5. fclose($fp); 
  6. } 
  7. ?> 

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

 

 
  1. <?php 
  2. $filename='test.txt'; 
  3. $str='abc'; 
  4. writefile($filename,$str); 
  5. ?> 

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


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表