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 禁止页面缓存输出
Jan 07 PHP
PHP中设置时区方法小结
Jun 03 PHP
php中使用__autoload()自动加载未定义类的实现代码
Feb 06 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
php去除数组中为0的元素的实例分析
Nov 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
python让列表倒序输出的实例
2018/06/25 Python
python将视频转换为全字符视频
2019/04/26 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
用python写测试数据文件过程解析
2019/09/25 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
战马观后感
2015/06/08 职场文书
护士心得体会范文
2016/01/25 职场文书
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL
Java存储没有重复元素的数组
2022/04/29 Java/Android