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 获取客户端的真实ip
Nov 30 PHP
php中的观察者模式
Mar 24 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
PHP临时文件的安全性分析
Jul 04 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
Drupal简体中文语言包安装教程
Sep 27 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
PHP中的switch语句的用法实例详解
Oct 21 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
php实现的数组转xml案例分析
Sep 28 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 UTF8 文件的签名问题
2009/10/30 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
JavaScript按位运算符的应用简析
2014/02/04 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
python操作ie登陆土豆网的方法
2015/05/09 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
python mysql中in参数化说明
2020/06/05 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
机械专业应届生求职信
2013/09/21 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
销售目标责任书
2014/07/23 职场文书
学校端午节活动方案
2014/08/23 职场文书
学生吸烟检讨书
2014/09/14 职场文书
关于五一放假的通知
2015/08/18 职场文书
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript