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 相关文章推荐
判“新”函数:得到今天与明天的秒数
Oct 09 PHP
PHP 网页过期时间的控制代码
Jun 29 PHP
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
php的一些小问题
Jul 03 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
php解析url的三个示例
Jan 20 PHP
php析构函数的简单使用说明
Aug 24 PHP
php三种实现多线程类似的方法
Oct 30 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
PHP 图片水印类代码
2012/08/27 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
javascript实现动态改变层大小的方法
2015/05/14 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
代码详解django中数据库设置
2019/01/28 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
员工拓展培训方案
2014/02/15 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
学校教研活动总结
2014/07/02 职场文书
面试感谢信范文
2015/01/22 职场文书
死亡赔偿协议书
2015/01/28 职场文书
个人党性分析总结
2015/03/05 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis