这个问题对于大牛们来说,也许根本就不是个问题,我在以前的项目里,对于php数组中的所有的字符型索引(下标)都是采用变量的命名规则,即不使用关键字,不以数字开头,只包含大小写字母、数字和下划线,慢慢的这都快形成一个定势(思维定势是一件可怕的事情),然而在当下的项目中,语言包文件的数组,其字符索引形态万千,百花齐放。这让我颇不适应,就在我打算将其作为BUG提交上去的时候,QA以及外网内测数据反馈回来了,都没有在语言包这里出问题。我勒个擦!PHP的数组到底是怎么个回事? 此文妙哉,快快看全文 »
260位童鞋围观 | 2条评论分类: 我爱PHP 标签: 我爱PHP、数组
很早以前在学习session的时候,其中有个session_set_save_handler()方法可以自定义session读写、销毁、回收动作,也就是通过这个方法实现将session保存进数据库的。当然,大多数时候看到的代码是定义几个函数:function sess_open(){} function sess_close(){}……,然后使用session_set_save_handler()将前面的函数名一一对应起来,这里是用字符串来表示函数名的。这就是php的callback类型,这是php4时代的写法,在php5和php面向对象编程迅速流行起来以后,在callback这里起了一点点的变化,我们看到了使用数组,即形如:session_set_save_handler( array( ‘session_cls’, ‘open’ ), array( ‘session_cls’, ‘close’ ), array( ‘session_cls’, ‘read’ ), array( ‘session_cls’, ‘write’ ), array( ‘session_cls’, ‘destroy’ ), array( ‘session_cls’, ‘gc’ ) ),明显多出一个类名,并且随着我阅读的优秀的开源项目的代码越来越多,这种callback的调用形式越发频繁,到后来就干脆全是这样子的了。 此文妙哉,快快看全文 »
245位童鞋围观 | 5条评论分类: 我爱PHP 标签: callback、我爱PHP
唉!现在终于发现上学时不好好念书有多少的坏处了,概率几率对于我来说一直是一个很难弄清楚的问题。今天,我又继续让这个问题纠结上了。好吧!来说说我的那点事儿,首先注明一下:这是一篇求助性文字,我的几率算法也许根本就是不对的。如果恰巧有数学系专家学者路过,那希望您能留言说两句。问题是这样子的:在一个物品合成系统中,需要使用几件不同的物品来合成宝石,有不同的几率生成一颗(50%)、两颗(16%)和三颗(2%)宝石,其余的为爆掉,即什么也得不到。
我的PHP代码实现是这样子的:
<?php
//初始化数组
$stone_arr = array(
array( 'num' => 1, 'prob' => '50%' ),
array( 'num' => 2, 'prob' => '16%' ),
array( 'num' => 3, 'prob' => '2%' )
);
//随机获得一个幸运数字
$luck_num = mt_rand( 0, 99 );
//初始化几率区间和最终宝石生产数目
$lucky_range = $made_num = 0;
foreach( $stone_arr as $sa ){
$prob = intval( $sa['prob'] );
if( $luck_num >= $lucky_range && $luck_num < $lucky_range + $prob ){
$made_num = $sa['num'];
break;
}
else{
$lucky_range += $prob;
}
}
for( $i = 0; $i < $made_num; $i++ ){
//生产宝石的逻辑
}
?>
左思右想,我总觉得这个并没有问题,可我的同事坚持认为$luck_num = mt_rand( 0, 99 )这一行应该放到循环体的里面,说的也有道理呀!不过我觉得这样是不是多给了玩家机会?(当然,从玩家的角度来说,机会越多越好。呵呵~),截至记者发稿时止,我还是没有弄清楚是不是该把随机数放到循环里面?或者这两种方法都不对?麻烦路过的明眼人给俺说道说道,不甚感激
420位童鞋围观 | 19条评论分类: 我爱PHP 标签: 几率、我爱PHP、算法
为开发者推荐好的工具一直是本人不遗余力和乐此不疲的爱干的一件事情,zend studio不是我们的唯一选择,虽然Oracle吃了sun,但netbeans社区依然保持活跃。在我的上一篇文章中介绍《试试NB吧》中,更多的朋友知道了netbeans,相比zend studio,她似乎更让我们喜欢,呵呵!~如果取名叫做zend studio的站点每天铺天盖地的介绍zend studio,并到处吹嘘zend studio无所不能,我想总有一天所有的人们都会明白我在撒谎吧!~是的!netbeans仍然是一款优秀的IDE。至于更多好处,大家可以参考我的上一篇文章中的介绍。
netbeans 6.9的大的改进之处个人认为是formatter的增强,我们公司项目中,团队成员的代码风格迥异,但为了统一,大家尽可能多的保持一致,空格是其中的一个部分,而我是个很爱加空格的人,但显然不是所有人都喜爱不断的敲击那个长长的空格键,formatter解决了这个问题!尽管如此,也许同样的代码,我写出来的东西的体积要比别人的大的多!吼吼~如果按文件体积算绩效,那是个多么令人神往的事情呀!!!和其他软件一样,netbeans 6.9正式版的发布,修复了很多6.8以来的已知bug,甚至让人感觉打开的速度也变得更加快速了!enjoy~~~
netbeans官方网站:http://netbeans.org ,有中文页面,快去看看吧,体验一下netbeans6.9给你带来的编程乐趣。
471位童鞋围观 | 6条评论分类: 咸吃萝卜,有得下载哦 标签: netbeans、zend studio
通常我们做产品都希望做到极致,以便在激烈的市场竞争中取得优势,将对手的相对不够优秀的产品秒杀。可是,有的时候,我们的产品也许已经在市场上取得了优势,只是希望能延长产品生存周期,扩大收益,或者说找到新的赢利点。我们已经有一个相当成熟稳定的平台了,这大概也属于平台辐射性吧。
腾讯的平台是一个太成功和强大的例子,不说它了!平台的另一个问题是他已经成型了,很多东西已经难以改变,用户也已经有了,很熟悉她了。在现有平台上搭建新的系统,是我们项目的一个特点,并且从运营的情况来看,收效不错,我们以内测的名义不断的给用户惊喜,越来越多。还记得有位前辈的文章:《王建硕: 用贬义词描述自己要做的事情》,意思大概如此,想要做处处完美的产品几乎是一定要失败的。
我们注意到一个事实,团队里总有人能够非常快速的实现方案,保证如期上线,但在我看来,这个方案并不优秀,但却非常好的解决了问题!所以,有的时候不一定需要完美的实现,而需要快速的方案,和时间赛跑!
本来很有心情(星期天)仔细谈谈这个快速和完美直接的辩证关系的,结果(都星期二了),说着说着便不知所云了,好吧, 就这样吧!码文字也是个不错的活儿哦~
世界杯了!我喜欢卡卡,我认为巴西会拿冠军!哈哈~另外,天气也热了,大家注意防暑降温,爱上游泳是个不错的选择.
100位童鞋围观 | 2条评论分类: 浅谈做产品,理想与现实 标签: 产品、解决方案
这次的bug让我印象比较深刻,居然出在strpos函数上,从标题来说,今天我要阐述的不是经典的strpos()===false的问题,而是在我设计的一个应用中,由于比较特殊的场景,而产生的bug。所以叫做“另一个”需要注意的地方,下面我就详细说说。
我们的项目强烈不推荐多表联合查询,这当然是系统架构决定的,同时也意味着我曾经长时间修炼的复杂的MYSQL查询语句,在当下项目中毫无用武之地。呜呼哀哉!架构决定数据库设计,在不复杂的一对多的情况,我们通常把他们放到一个表中处理。我做的应用的功能是一个用户组,需要对用户组中的用户设定一个数值来表示他的状态,另外,添加用户到组中或者踢出用户,我都把他放在同一字段中,该字段中的数据格式类似与这样: 状态#用户UID|状态#用户UID|状态#用户UID,设计的时候就是这样子设计的,要取出组中的成员很容易用explode就可以还原出来,那么,要检查一个用户UID是否存在该组中,我们自然用到strpos来做,看看他是否===false就可以了,先前我也是这么自然的思考的,但问题不知不觉的就产生了,由于用户UID的另个表中的自增主键,所以有这样的情况,例如某UID=143235,而另个UID=1432,那么用strpos判断肯定会返回true,即错误的认为本不是该组的成员,被判断为是该组成员,聪明的你一定会说用explode+in_array不就可以了么?实际上在这个应用中用户状态有5个值,他不是固定值,因此如果用explode+in_array的话,我们还需要循环一次。所以我修改了一下格式,变成:状态#用户UID|状态#用户UID|状态#用户UID|,看出不同了么?是的,最后将总是有一个竖线,这样用strpos来判断的时候用“#.用户UID.|”,就消除了BUG,用explode还原的时候array_pop一次即可消除最后的空数组。
实际上,除了strpos,str_replace有同样的问题,因此在踢出用户的时候也没有了bug。数据格式化部分全部由PHP来处理,而我们外网的生产服务器运算能力惊人,数据库还是干好存取工作吧。
——为什么今天讲了这么烂的话题和这么烂的数据库设计?——哥,你懂的!……
236位童鞋围观 | 3条评论分类: 我爱PHP 标签: 我爱PHP