作为一个系统管理员,我偶尔会做一些简单的临时编程。我一直在努力学习,所以一般来说,下面的代码中有什么会跳出来,因为你是不好的练习还是不必要的?避免重复的代码(PHP)
具体来说,最后3条if语句感觉就像我在不必要地复制代码。有没有什么办法可以进一步缩短它,而不会过度复杂?
<?php
define('TAKEN', 'Match: One');
define('AVAIL', 'Match: No Matches');
define('DATAMINE', 'Data mining count exceeded');
$ch = curl_init("http://co.za/cgi-bin/whois.sh?Domain=example");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
function search_whois($findit) {
global $output;
if (strpos($output, $findit) === false)
return false;
if (is_int(strpos($output, $findit)))
return true;
}
if (search_whois(TAKEN))
echo "Domain is taken.\n";
if (search_whois(AVAIL))
echo "Domain is available.\n";
if (search_whois(DATAMINE))
echo "Blocked for datamining, try again later.\n";
// var_dump($output);
?>
我喜欢看到开发商居然想提高自己的代码,并希望做正确的事情。我会给你一个+1! 由于周五下午很晚,我可能不是现在验证某人代码的合适人选。但是,我看不出有什么明显的错误。如果最后三个if是互斥的,你可以使用if-else来代替,但这是挑剔的。 – kskjon 2010-10-15 13:05:58
如上面评论中提到的那样,所有3个IF将运行,如果这是想要的,那么你的代码是好的,如果你想在每个if后结束/退出,或者只允许其中一个运行,那么使用if/elseif /别的等等...... – 2010-10-15 13:07:41
我唯一可能做的不同是让一个类而不是简单地使用一个函数,所以你不必使用'global $ output'。除此之外,我认为你很稳固。 – tplaner 2010-10-15 13:15:00