摘要: 今天朋友群里朋友问了下 按位与或的问题。。 PHP 工作有1年了 可能对这块不太熟悉吧 在这里给新手朋友介绍下这部分 按位于主要是对二进制数操作。<?php$a = 1;$b = 2;$c = $a^b;echo $c // 3?>这里不是单纯的相加关系 十进制 1换算成二进制 00000001 十进制 2换算成二进制 00000010按位^00000011 // 就是不相同的都算成1 啦 ^_^ 然后,<?php$a = 1;$b = 2;echo $a & $c; // 1?>十进制 3换算成二进制 00000011十进制 1换算成二进制 00000001 阅读全文
posted @ 2012-05-30 23:52 ﹏Sakura 阅读(8639) 评论(0) 推荐(1) 编辑
摘要: 有的时候是php.ini里面的allow_url_fopen没有打开,但有些打开以后还是会报错,偶然间在phpinfo里面看到allow_url_fopen下一行有一个allow_url_include选项是关闭的手工加上开启后,重启,可以正常加载URL里面的文件 阅读全文
posted @ 2012-05-23 23:06 ﹏Sakura 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 先看看官方文档的解释__set() is run when writing data to inaccessible properties.__get() is utilized for reading data from inaccessible properties.究竟用中文怎么翻译呢? inaccessible :n. 难达到;难接近;无法理解。有代码有真相:<?phperror_reporting(E_ALL);class stu{ private $a; private $b = 0; public $c; public $d = 0; //这里的 private 可以用 p 阅读全文
posted @ 2012-05-23 08:19 ﹏Sakura 阅读(14074) 评论(2) 推荐(3) 编辑
摘要: simpleTest UnitTest 一直听说有这些东西可惜重来没时间研究(借口)。 今天得闲 研究了一下,算是给和我一样第一次用的朋友一点启示吧 直接上码:<?phprequire_once('simpletest/autorun.php');class test { public function testfun($a,$b){ return $a+$b; }}// 从UnitTestCase类继class myFirstUnitTest extends UnitTestCase { function BaicUnitTest($name = '') 阅读全文
posted @ 2012-05-21 20:26 ﹏Sakura 阅读(527) 评论(0) 推荐(0) 编辑
摘要: <?phpclass a { static public $obj; public function __construct(){ } static public function getInstance(){ if(empty(self::$obj)){ echo "执行实例化"; self::$obj = new a(); } return self::$obj; } public function test(){ return "111"; ... 阅读全文
posted @ 2012-05-10 23:31 ﹏Sakura 阅读(352) 评论(4) 推荐(0) 编辑
摘要: 8-职责链模式星际的兵种属性随着对平衡性的调节,会进行修改。如果这样的话,我们就要考虑减少一个事件和具体处理的关联性。比如一颗原子弹投下的瞬间,在杀伤范围内的部队或者建筑都会减少血,但是随着距离中心点的远近,受损程度是不同的,而且不同的兵种和建筑受损情况是不同的。待解决的问题:原子弹投下的瞬间,将杀伤的处理分别交给杀伤范围内的部队或者建筑自己的方法处理。思路:建立一个接口,让所有的部队或者建筑实现。职责链模式(Chain of Responsibility)示例:<?php//被原子弹攻击的接口interface NuclearAttacked {//处理被原子弹攻击的方法,参数为投放点 阅读全文
posted @ 2012-05-02 00:52 ﹏Sakura 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 15-状态模式星际的一些兵种会有不止一种状态,比如坦克可以架起来,枪兵可以打兴奋剂,甚至还有一些被动的,比如被虫族女王喷洒绿色液体后,敌人的行动变慢。如果按照一般的思路,每次我们对一个小兵进行操作的时候,比如一辆坦克,我们都要用if判断他的状态,这样代码中会有很多的if,else或者swith。不过我们可以发现,我们需要的是他在某个状态下的行为,如果把这些行为按照状态封装起来,就可以减少大量的判断。待解决的问题:封装坦克的状态,让状态自己去控制行为。思路:把状态作为属性,兵种类本身只控制状态的变化,具体的行为由状态类定义。状态(State)模式示例:<?php//坦克状态的接口inter 阅读全文
posted @ 2012-05-02 00:52 ﹏Sakura 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 1-简单工厂模式不熟悉面向对象的朋友,建议先看看用星际快速入门PHP面向对象编程上次用星际争霸讨论了面向对象的基础知识,似乎面向对象能解决很多问题。但是还会有很多问题,简单的靠类和对象解决不得太好。比如如何根据玩家输入的内容(尽管可以转化为其他字符串),来确定要制造的兵种,玩家不会输入代码:new Marine()。 和星际一样,PHP也没有终极兵种,如果类和接口是兵种的话,那么设计模式就是你的战术和控制,它可以让你靠各种兵种的搭配获胜。待解决的问题:在人族的兵营,我们靠相应玩家的输入来动态确定要造的兵种,假设是机枪兵和火焰兵。思路:动态的根据传递的数据,新建相应的类的对象。简单工厂模式示例: 阅读全文
posted @ 2012-05-02 00:50 ﹏Sakura 阅读(703) 评论(0) 推荐(1) 编辑
摘要: 今天做一个应用本来想在php处理程序期间把信息写入session 在后台执行 然后前台通过ajax进行调用查看 发现无论如何调用都要等 程序完全执行完 才会出现结果。 百度了下 原来 PHP 的session 设置了锁的功能。 (类似MYSQL锁表)<?php session_start(); $_SESSION['test'] = 0; session_write_close(); // notice! sleep(5); echo "complete1";?>session_write_close(); 没错就是这个。 他可以在session 阅读全文
posted @ 2012-05-01 23:42 ﹏Sakura 阅读(1380) 评论(0) 推荐(0) 编辑
摘要: 在PHP中数组常被当作堆栈(后进先出:LIFO)与队列(先进先出:FIFO)结构来使用。PHP提供了一组函数可以用于push与pop(堆栈)还有shift与unshift(队列)来操作数组元素。堆栈与列队在实践中应用非常广泛。我们可以先看下堆栈:<?php $arr = array(); array_push($arr,'aaa'); array_push($arr,'bbb'); $arr.pop(); print_r($arr);?>如果你打算把数组作为队列来使用(FIFO),你可以使用array_unshift()来增加元素,使用array_s 阅读全文
posted @ 2012-04-25 01:06 ﹏Sakura 阅读(4857) 评论(0) 推荐(0) 编辑