哪位能给下面这段php代码写个详细分析,最好具体到每一行。这个是NetBeans中的ToDoList的一部分
<?phpfinalclassFlash{constFLASHES_KEY='_flashes';privatestatic$flashes=null;privatefu...
<?php
final class Flash {
const FLASHES_KEY = '_flashes';
private static $flashes = null;
private function __construct() {
}
public static function hasFlashes() {
self::initFlashes();
return count(self::$flashes) > 0;
}
public static function addFlash($message) {
if (!strlen(trim($message))) {
throw new Exception('Cannot insert empty flash message.');
}
self::initFlashes();
self::$flashes[] = $message;
}
public static function getFlashes() {
self::initFlashes();
$copy = self::$flashes;
self::$flashes = array();
return $copy;
}
private static function initFlashes() {
if (self::$flashes !== null) {
return;
}
if (!array_key_exists(self::FLASHES_KEY, $_SESSION)) {
$_SESSION[self::FLASHES_KEY] = array();
}
self::$flashes = &$_SESSION[self::FLASHES_KEY];
}
}
?>
急啊,哪位大神赶紧的啊,分再高点 展开
final class Flash {
const FLASHES_KEY = '_flashes';
private static $flashes = null;
private function __construct() {
}
public static function hasFlashes() {
self::initFlashes();
return count(self::$flashes) > 0;
}
public static function addFlash($message) {
if (!strlen(trim($message))) {
throw new Exception('Cannot insert empty flash message.');
}
self::initFlashes();
self::$flashes[] = $message;
}
public static function getFlashes() {
self::initFlashes();
$copy = self::$flashes;
self::$flashes = array();
return $copy;
}
private static function initFlashes() {
if (self::$flashes !== null) {
return;
}
if (!array_key_exists(self::FLASHES_KEY, $_SESSION)) {
$_SESSION[self::FLASHES_KEY] = array();
}
self::$flashes = &$_SESSION[self::FLASHES_KEY];
}
}
?>
急啊,哪位大神赶紧的啊,分再高点 展开
3个回答
展开全部
<?php
/**
* 闪存封装,用户可以将消息通过Flash::addFlash方法放入$_SESSION中,在取出后这些消息自动从$_SESSION中清除
*/
final class Flash { //声明Flash类,该类不可再被继承
const FLASHES_KEY = '_flashes'; //类常量属性,声明个关键字
private static $flashes = null; //私有静态变量,用来保存数据
private function __construct() {//禁止使用new关键字获得本类的实例,实现单件模式
}
/**
* 静态方法,判定是否已闪存了数据
* 先初始化一下,然后检查私有静态属性flashed的长度是否大于0
* 如果大于0返回true,否则返回false
*/
public static function hasFlashes() {
self::initFlashes();
return count(self::$flashes) > 0;
}
/**
* 增加闪存数据
* 如果$message的字符串长度为0则抛出异常信息:不允许插入空值
* 初始化自身
* 在私有静态属性flashes数组中加入$message
*/
public static function addFlash($message) {
if (!strlen(trim($message))) {
throw new Exception('Cannot insert empty flash message.');
}
self::initFlashes();
self::$flashes[] = $message;
}
/**
* 获取私有静态变量$flashes的值,同时清空$flashes的值
*/
public static function getFlashes() {
self::initFlashes();
$copy = self::$flashes;
self::$flashes = array();
return $copy;
}
/**
* 私有方法,初始化
* 如果私有静态变量flashes已经赋值了则跳过后面的语句
* 如果下标self::FLASHES_KEY未在session中定义,把下标self::FLASHES_KEY添加到session中
* 声明私有静态变量$flashes是对$_SESSION[self::FLASHES_KEY]的引用,这样所有对$flashes的更改等同于修改$_SESSION[self::FLASHES_KEY]
*/
private static function initFlashes() {
if (self::$flashes !== null) {
return;
}
if (!array_key_exists(self::FLASHES_KEY, $_SESSION)) {
$_SESSION[self::FLASHES_KEY] = array();
}
self::$flashes = &$_SESSION[self::FLASHES_KEY];
}
}
?>
展开全部
final class Flash {//最终类,不能被继承
const FLASHES_KEY = '_flashes'; //定义常量
private static $flashes = null;// 私有静态属性 $flashes
private function __construct() {//构造方法
}
public static function hasFlashes() {//公共的静态方法
self::initFlashes();//调用本类中的initFlashes方法
return count(self::$flashes) > 0; //计算本类中的$flashes和0做比较并将结果作为返回值
}
const FLASHES_KEY = '_flashes'; //定义常量
private static $flashes = null;// 私有静态属性 $flashes
private function __construct() {//构造方法
}
public static function hasFlashes() {//公共的静态方法
self::initFlashes();//调用本类中的initFlashes方法
return count(self::$flashes) > 0; //计算本类中的$flashes和0做比较并将结果作为返回值
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好:你的问题有一些点
1,先检查数据库表的字段类型和长度可能是错误的,在这里说,最好设置为255字符,长字段,文本类型,等等。
2,写你的代码做一些小建议,$ _POST ['用户']添加单引号,注意码表的准的话,是有利于运行速度。
3,$ SQL =“插入bbs.message的(ID,用户,标题,内容,lastdate)值?('','$ _POST [用户]','$ _POST [标题]',' $ _POST [内容]',现在())“;
可以这样写:
$ SQL =”插入到消息(标题,内容,用户,lastdate)值?($ _POST ['用户' ','$ _POST ['标题']','$ _POST ['内容']',时间())“;
我希望你能帮助你确定这是不是基于你的PHP代码逻辑方面的错误
1,先检查数据库表的字段类型和长度可能是错误的,在这里说,最好设置为255字符,长字段,文本类型,等等。
2,写你的代码做一些小建议,$ _POST ['用户']添加单引号,注意码表的准的话,是有利于运行速度。
3,$ SQL =“插入bbs.message的(ID,用户,标题,内容,lastdate)值?('','$ _POST [用户]','$ _POST [标题]',' $ _POST [内容]',现在())“;
可以这样写:
$ SQL =”插入到消息(标题,内容,用户,lastdate)值?($ _POST ['用户' ','$ _POST ['标题']','$ _POST ['内容']',时间())“;
我希望你能帮助你确定这是不是基于你的PHP代码逻辑方面的错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询