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 多进程 解决难题
Jun 22 PHP
PHP排序算法的复习和总结
Feb 15 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
php合并数组中相同元素的方法
Nov 13 PHP
Symfony核心类概述
Mar 17 PHP
一段实用的php验证码函数
May 19 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
PHP调用接口API封装的例子
Oct 11 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程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
两个php日期控制类实例
2014/12/09 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
python 批量将中文名转换为拼音
2021/02/07 Python
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
2014年单位植树节活动方案
2014/03/23 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
Redis持久化与主从复制的实践
2021/04/27 Redis
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android