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


Posted in PHP onNovember 19, 2015

下面先给大家分析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 相关文章推荐
E路文章系统PHP
Dec 11 PHP
PHP 万年历实现代码
Oct 18 PHP
IIS安装Apache伪静态插件的具体操作图文
Jul 01 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
Feb 16 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
Sep 12 PHP
php有效防止同一用户多次登录
Nov 19 #PHP
带你了解PHP7 性能翻倍的关键
Nov 19 #PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 #PHP
phpStudy访问速度慢和启动失败的解决办法
Nov 19 #PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 #PHP
WordPress网站性能优化指南
Nov 18 #PHP
php+ajax实现无刷新分页
Nov 18 #PHP
You might like
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
javascript FormatNumber函数实现方法
2008/12/30 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
微信小程序实现下载进度条的方法
2017/12/08 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
python调用staf自动化框架的方法
2018/12/26 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
python中web框架的自定义创建
2019/09/08 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
公司活动策划方案
2014/01/13 职场文书
自荐信写法介绍
2014/01/25 职场文书
中秋手机店促销方案
2014/06/16 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
反邪教学习心得体会
2016/01/15 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书