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 在文件指定行插入数据的代码
May 08 PHP
php 数组的指针操作实现代码
Feb 08 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
如何让thinkphp在模型中自动完成session赋值小教程
Sep 05 PHP
使用PHPExcel操作Excel用法实例分析
Mar 26 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
PHP自动补全表单的两种方法
Mar 06 PHP
基于PHP实现发微博动态代码实例
Dec 11 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中取得文件的后缀名?
2012/02/20 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
PHP中cookie知识点学习
2018/05/06 PHP
统计出现最多的字符次数的js代码
2010/12/03 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
Ionic快速安装教程
2016/06/03 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
python psutil库安装教程
2018/03/19 Python
python实现京东秒杀功能
2018/07/30 Python
python 切换root 执行命令的方法
2019/01/19 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
实习生自我评价
2014/01/18 职场文书
大学生自我鉴定范文模板
2014/01/21 职场文书
四个太阳教学反思
2014/02/01 职场文书
2015年推普周活动方案
2015/05/06 职场文书
婚姻出轨保证书
2015/05/08 职场文书
写给同事的离职感言
2015/08/04 职场文书
2016年春节问候语
2015/11/11 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL
浅谈怎么给Python添加类型标注
2021/06/08 Python
Python anaconda安装库命令详解
2021/10/16 Python