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 相关文章推荐
Smarty+QUICKFORM小小演示
Feb 25 PHP
一个比较简单的PHP 分页分组类
Dec 10 PHP
PHP中读写文件实现代码
Oct 20 PHP
php长字符串定义方法
Jul 12 PHP
获取URL文件名后缀
Oct 24 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
goto语法在PHP中的使用教程
Sep 17 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
PHP 文件上传全攻略
2010/04/28 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
Python字典,函数,全局变量代码解析
2017/12/18 Python
python将txt文件读取为字典的示例
2018/12/22 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
详解python中docx库的安装过程
2019/11/08 Python
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
大学校庆邀请函
2014/01/11 职场文书
学生会个人自荐书范文
2014/02/12 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
股权投资意向书
2014/04/01 职场文书
幼儿园安全责任书
2014/04/14 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
大学生自荐书范文
2015/03/05 职场文书
复兴之路展览观后感
2015/06/02 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
如何写好活动总结
2019/06/21 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
mysql数据库隔离级别详解
2022/06/16 MySQL