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

 更新时间:2015年11月19日 11:38:45   投稿:mrr  
这篇文章给大家介绍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创建文件的功能。

相关文章

  • php随机显示图片的简单示例

    php随机显示图片的简单示例

    本文分享一个php实现的随机显示图片的函数,可以将指定文件夹中存放的图片随机地显示出来
    2014-02-02
  • PHP实现linux命令tail -f

    PHP实现linux命令tail -f

    tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.接下来通过本文给大家介绍PHP实现linux命令tail -f,需要的朋友参考下
    2016-02-02
  • php批量更改数据库表前缀实现方法

    php批量更改数据库表前缀实现方法

    我们经常会遇到替换或添加数据库表前缀的问题,通过数据库导出,在记事本上批量更改,然后再导出,这也是一种方法,但是不够方便
    2013-10-10
  • PHP中使用GD库创建圆形饼图的例子

    PHP中使用GD库创建圆形饼图的例子

    这篇文章主要介绍了PHP中使用GD库创建圆形饼图的例子,本文给出了的代码例子实现了一个扇形统计图,需要的朋友可以参考下
    2014-11-11
  • thinkphp3.x中session方法的用法分析

    thinkphp3.x中session方法的用法分析

    这篇文章主要介绍了thinkphp3.x中session方法,全面分析了thinkPHP中session的初始化、设置、赋值、删除、管理等各种常用操作技巧,需要的朋友可以参考下
    2016-05-05
  • 兼容PHP和Java的des加密解密代码分享

    兼容PHP和Java的des加密解密代码分享

    这篇文章主要介绍了兼容PHP和Java的des加密解密代码分享,适合如服务器是JAVA语言编写,客户端是PHP编写,并需要des加密解密的情况,需要的朋友可以参考下
    2014-06-06
  • 如何使用Strace调试工具

    如何使用Strace调试工具

    本篇文章是对如何使用Strace调试工具进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP的error_reporting错误级别变量对照表

    PHP的error_reporting错误级别变量对照表

    这篇文章主要介绍了PHP的error_reporting错误级别变量对照表,需要的朋友可以参考下
    2014-07-07
  • 有道搜索和IP138的IP的API接口(PHP应用)

    有道搜索和IP138的IP的API接口(PHP应用)

    原理就是通过php模拟浏览器获取ip地址归属地,需要的朋友可以参考下
    2012-11-11
  • php基于Redis消息队列实现的消息推送的方法

    php基于Redis消息队列实现的消息推送的方法

    这篇文章主要介绍了php基于Redis消息队列实现的消息推送的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论