易截截图软件、单文件、免安装、纯绿色、仅160KB

魔兽争霸之PHP设计模式

 
前言:我写的关于设计模式的一系列文章。这系列的文章主要针对没接触过设计模式的,或者说接触过但还不是很明白的PHPer。
问题的提出:
可能很多人都写过类,文件操作的,数据库的……
对于数据库的类来说有时候可能被忽略的一个问题是:我们创建类的实例时一般都是通过构造函数连接了数据库。这没错。但是如果我们不注意地创建了多个实例,那么对于数据库资源而言是一种浪费。所以使用单件模式在解决这个问题上就显得很有必要了。
单件模式的作用:
从上面可以看出,单件模式的引入是为了使类的实例只有一个。
那么下面开始我们的类的设计。这里就不以数据库为例子了。从标题可以很明显看出,我这个系列的文章都是以魔兽争霸为例子的。
想玩游戏,那么先打开应用程序WarThree:
<?php
/*
*创建一个魔兽争霸3的应用程序类
*/
class WarThree
{
public function __construct()
{
echo 'Open war3.exe<br/>';
}
}
$war = new WarThree();
//这样貌似没什么问题。但如果你不小心打开了2个魔兽争霸呢?
//尝试下面语句
$war_again = new WarThree();
echo ($war !== $war_again) ? 'Error:War3.exe is already running' : 'Have a good time in the game';
?>
相信你已经知道了上面代码存在的问题了。
那么,如果我们对类的实例化这一过程进行控制,也就是说不给用户随便打开游戏,我们要在打开之前进行控制。
试试下面代码:
<?php
/*
*创建一个魔兽争霸3的应用程序类
*防止在外部无限打开程序
*/
class WarThree
{
//把构造函数改为private的,看你怎么创建我?呵呵
private function __construct()
{
echo 'Open war3.exe<br/>';
}
}
$war = new WarThree();//这时尝试创建对象会发生错误。
?>
总不能不让人玩游戏吧,那干脆卸载算了!
别激动,改下就能玩了嘛,真是的。
  
<?php
/*
*创建一个魔兽争霸3的应用程序类
*总算可以打开了
*/
class WarThree
{
//把构造函数改为private的,看你怎么创建我?呵呵
private function __construct()
{
echo 'Open war3.exe<br/>';
}

public static function OpenWar()
{
new WarThree();
}
}
$war = new WarThree();//我打开。咦还不行
$war = WarThree::OpenWar();//楼上的,你这不废话吗。我还是private的。不过通过Op


相关文档:

PHP Security for Deployers

PHP Security for Deployers
If you're a Developer
READ THIS and then work with your SysAdmins to step through any and all the layers of security designed to protect your apps.
Example:
Traffic must first pass through a SPI firewall (ensure that ONLY necessary ports/protocols are permitted; en ......

PHP数组的使用和遍历

 1、数组的申请和使用:
$array=array(array(2,324,34)); 
echo   $array[0][1]; 
直接申请使用:
$student[0][0]="我";
$student[0][1]="是";
$student[1][0]="谁";
$student[1][1]="维";
 echo   $student[1][0];
2、遍历: ......

php中常用函数技巧

1.随机字符序列生成函数:
 <?php
//用于验证码序列生成等..
function random($length) {
$hash = '';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars)-1;
$length=4;//长度自行设定
mt_srand((double)microtime() * 1000000);
for($i = 0; $i < ......

PHP编程基础必知必会

1.PHP字符串操作常用的方法
    php串中还有一个特殊的花括号操作符。当用双引号指定字符串时,其中的变量会被解析。在双引号中的串中如果遇到$,解析器会尽可能多地取得后面的字符以组成一个合法的变量名,如果想表示指定名字的结束,用花括号把变量名括起来。请看以下代码:
<?php
$beer = 'heineke ......

使用PHP批量生成随机用户名

生成6 ~ 16位的用户名若干个,主要是文本操作,但是前提是要有一个字符串包。主要包含三个程序。
程序一:负责从字典中随机提取数据,写入一个新文件。(1.php)
<?php
/* 从字典文件中提取随机值 */
$file1 = "./Words.dic";
$file2 = "./common_pass_mini.dic";
$file3 = "./Sys_Month_Date.Dic";
$rfile = "./ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号