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 pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
php抓取https的内容的代码
Apr 06 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
php随机取mysql记录方法小结
Dec 27 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
May 25 PHP
php编程每天必学之表单验证
Mar 01 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
全面了解PHP中的全局变量
Jun 17 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 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
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
Python中文编码那些事
2014/06/25 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
Python数组并集交集补集代码实例
2020/02/18 Python
python全栈开发语法总结
2020/11/22 Python
用 python 进行微信好友信息分析
2020/11/28 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
操行评语大全
2014/04/30 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
员工保密承诺书
2014/05/28 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
优秀班组申报材料
2014/12/25 职场文书
先进典型事迹材料
2014/12/29 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
学生会招新宣传语
2015/07/13 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
Hive HQL支持2种查询语句风格
2022/06/25 数据库