最近在某源码中发现了这个类:stdClass,发现该源码中并没有声明过这个类,再查手册也没发现,于是上网找下资料,原来stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。也可以理解为stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,这个基类又有一个特殊的地方,就是没有方法。
当我们声明一个数组时候:

$arrTemp = array();
$arrTemp[‘a’] = 1;
$arrTemp[‘b’] = 2;
$arrTemp[‘c’] = 3;

如果声明一个对象,操作就多了一些

$arrTemp = array(); $objTemp = (object)$arrTemp;
$objTemp->a = 1;
$objTemp->b = 2;
$objTemp->c = 3;

第一种方案:

使用递归算法,也是使用频率最多的,大部分开源程序也是这么处理,不过一般都只用到四级分类。这种算法的数据库结构设计最为简单。category表中一个字段id,一个字段fid(父id)。这样可以根据WHERE id = fid来判断上一级内容,运用递归至最顶层。

分析:通过这种数据库设计出的无限级,可以说读取的时候相当费劲,所以大部分的程序最多3-4级分类,这就足以满足需求,从而一次性读出所有的数据,再对得到数组或者对象进行递归。本身负荷还是没太大问题。但是如果分类到更多级,那是不可取的办法。
这样看来这种分类有个好处,就是增删改的时候轻松了…然而就二级分类而言,采用这种算法就应该算最优先了。

第二种方案:

设置fid字段类型为varchar,将父类id都集中在这个字段里,用符号隔开,比如:1,3,6
这样可以比较容易得到各上级分类的ID,而且在查询分类下的信息的时候,
可以使用:SELECT * FROM category WHERE pid LIKE “1,3%”。

在没有表单的情况下PHP很难实现POST数据,如果采用URL方式GET传值,那么比较大的数据是无法传过去。而HttpClinet这个类去很好,跨域的情况下也可以直接模拟POST到其他页面中,同时可以获取返回值。

常量和变量:

R_P //用于记录总论坛目录的绝对路径 D_P //用于分论坛目录的绝对路径 H_R //用于论坛使用插件目录的绝对路径 ./hack/bank/ phpwind //常用变量 $manager //创始人数组 $windid //登陆用户用户名 $winduid //登陆用户UID $groupid //用户所在组ID 游客为’guest’ $onlineip //访问IP地址 $timestamp //当前时间戳 $imgdir //图片dir $attachdir //附件dir

大部分时候我们使用PHP中header函数常用的有
header(‘Location: http://www.example.org/’);
header(‘Content-Type: text/html; charset=utf-8′);
下面列出header函数的大部分使用方式