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 之入门篇
Dec 04 PHP
php生成xml简单实例代码
Dec 16 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
php数组键值用法实例分析
Feb 27 PHP
php身份证号码检查类实例
Jun 18 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
基础的WordPress插件制作教程
Nov 24 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 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
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
php学习之流程控制实现代码
2011/06/09 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
PHP的mysqli_select_db()函数讲解
2019/01/23 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
Python判断telnet通不通的实例
2019/01/26 Python
python多进程使用函数封装实例
2020/05/02 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
求职自荐书范文
2013/12/04 职场文书
班主任工作经验材料
2014/02/02 职场文书
《花木兰》教学反思
2014/04/09 职场文书
运动会班级口号
2014/06/09 职场文书
新学期标语
2014/06/30 职场文书
三八活动策划方案
2014/08/17 职场文书
教育见习报告范文
2014/11/03 职场文书
2015年库房工作总结
2015/04/30 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
Python预测分词的实现
2021/06/18 Python
JavaScript执行机制详细介绍
2021/12/06 Javascript
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers