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 相关文章推荐
smarty 原来也不过如此~~呵呵
Nov 25 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
php顺序查找和二分查找示例
Mar 27 PHP
php环境无法上传文件的解决方法
Apr 30 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
php+ajax实现无刷新动态加载数据技术
Apr 28 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
PHP面向对象编程快速入门
2006/12/14 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
摘自启点的main.js
2008/04/20 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
Vue程序调试的方法
2019/06/17 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
在Python中使用Neo4j数据库的教程
2015/04/16 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
Django框架验证码用法实例分析
2019/05/10 Python
解决Python二维数组赋值问题
2019/11/28 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
大学生职业生涯设计书
2014/01/02 职场文书
公司活动策划方案
2014/01/13 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js