我从另一个问题转向nstrees,并且一直在研究脚本。它最后一次更新是在 2005 年,依赖于一些显然已经被弃用的东西,HTTP_POST_VARS
因为我做 PHP 才不到一年的时间,所以我并不立即熟悉这些东西。
无论如何,编码风格在我的菜鸟眼中似乎很奇怪,我想就这个函数的哪些部分提出第二意见:
// returns the first node that matches the '$whereclause'.
// The WHERE clause can optionally contain ORDER BY or LIMIT clauses too.
function nstGetNodeWhere ($thandle, $whereclause) {
$noderes['l'] = 0;
$noderes['r'] = 0;
$res = mysql_query("SELECT * FROM ".$thandle['table']." WHERE ".$whereclause);
if (!$res) { // problem area 1
_prtError();
} else {
if ($row = mysql_fetch_array($res)) { // problem area 2
$noderes['l'] = $row[$thandle['lvalname']];
$noderes['r'] = $row[$thandle['rvalname']];
}
}
return $noderes;
}
在上面的代码中,我将我不太确定的地方标记为// problem area x
,其他一切都是原始脚本。
关于 PA1,是否只是检查查询是否成功运行?
而 PA2,NetBeans 给了我一个警告“可能的意外分配,应避免在条件下分配”。...所以我立即将其从 更改=
为==
当然打破了脚本,呵呵。
想一想,我猜这只是另一个错误检查$res
,这次是为了确保确实返回了一些数据?
最后,这是奇怪的 PHP 还是我太幼稚而无法理解它?
谢谢老兄(tte)!