is_int()
、isset()
、file_exists()
或functions_exists()
是非常有用的。当我写代码时,总是会考虑到可能发生的任何问题,但有时候我会遇到一些问题,比如:
或者等等,这个变量是在PHP文件内设置的;这意味着没有人可以编辑它,对吧?如果这个“用户”可以编辑它,那么我将面临更多的麻烦,因为它将能够管理PHP文件。
让我们考虑以下没有意义的示例,但这将帮助我让你明白我在说什么。 PS: 我故意夸大了代码。 config.php检查应该始终存在的文件是否真的值得这样做吗?
$doActions = true;
functions.php
function getID() {
return $_COOKIE['userid'];
}
class eye {
public static function see() {
// gain the object the user is looking at
return $object;
}
}
index.php
class viewer {
private $poniesSeen = 0;
public function __construct() {
/* Magic ponies are created here */
}
public function sawAPony($id) {
if (file_exists('config.php')) {
if (isset($doActions)) {
if (is_bool($doActions)) {
if ($doActions) {
if (file_exists('functions.php')) {
if (function_exists('getID')) {
$id = getID();
if (!empty($id)) {
if (!is_int($id)) {
settype($id, 'int');
}
if (class_exists('eye')) {
if (method_exists('eye', 'see')) {
$o = eye::see();
if (is_string($o)) {
if ($o = 'pony') {
if (isset($this->poniesSeen) and is_int($this->poniesSeen)) {
++$this->poniesSeen;
return true;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
}
}
现在,我认为应该保留哪些条件,而哪些条件应该被舍弃,因为它们根本没有意义?我为什么不应该检查它们,为什么应该检查它们?这种固执的行为是否有一个黄金法则呢?