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 相关文章推荐
一个php作的文本留言本的例子(五)
Oct 09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
PHP中防止SQL注入方法详解
Dec 25 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php将字符串转换成16进制的方法
Mar 17 PHP
php比较相似字符串的方法
Jun 05 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
php 图片上添加透明度渐变的效果
2009/06/29 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
python中base64加密解密方法实例分析
2015/05/16 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
大学生就业推荐信范文
2013/11/29 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
商务英语广告词大全
2014/03/18 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
服装店员工管理制度
2015/08/07 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书