学习JS的时候突然想起了小时候经常玩的一个游戏,叫做“炸金花”,然后就试着把这个小游戏做了出来,在整个游戏实现的过程中,获益匪浅。“炸金花”的业务流程主要是:构建一副牌->随机发牌->比较牌大小->显示牌及结果。下面是详细的实现过程。
在Thinkphp有四种不同的方法实例化对象,new方法、D方法、M方法、空模型方法,比较常用的是D方法和M方法。本文大都是官方手册东西,自己稍微做了下总结 ### 一、new 方法 new方法是最好理解的一种方法,就是普通的实例化类
<?php
//参数可选,依次是表名、表前缀、数据库连接信息,大多数情况下不需要传参
new \Home\Model\NewModel('new','think_','DB_CONFIG');
?>
D方法Thingkphp(下面简称TP)系统提供的一个实例化类的快捷方法,通过D方法我们可以快速的实例化一个类并使用。
<?php
//实例化模型
$User = D('User');
// 相当于
$User = new \Home\Model\UserModel();
// 执行具体的数据操作
$User->select();
?>
当
\Home\Model\UserModel
类不存在的时候,D函数会尝试实例化公共模块下面的\Common\Model\UserModel
类,如果还不存在的话则会实例化系统的\Think\Model
基类,这是一点值得注意的地方。
在php中,求一个多维异形多维数组常见的方法就是递归,如同以下代码
<?php
$count=0;$sum=0;
function avgarr($arr)
{
global $sum,$count; //全局变量
foreach ($arr as $value) { //循环遍历数组
if (is_array($value)) {
avgarr($value); //递归
}
elseif (is_int($value)) {
$sum+=$value;
$count++;
}
}
return $sum/$count; //返回平均值
}
?>
<?php
function listDir($dir)
{
$mydir = dir($dir);
echo "<ul>";
while($file = $mydir->read())
{
if((is_dir("$dir/$file")))
{
echo "<li>$file</li>";
listDir("$dir/$file");
}
elseif($file!=="."&$file!=="..")
echo "<li><a href='$dir/$file' target='_blank'>$file</a></li>";
}
echo "</ul>";
$mydir->close();
}
listDir(".");
?>