1
좋아, 필자는이 pythagoras-solver 종류의 것을 코딩했고, 나는 그것을 향상시킬 수있는 방법이 궁금하거나 더 효율적으로 만들 수 있을까?PHP 수학 Pythagoras
<?php
$sides = array('1' => 'Hypotenuse',
'2' => 'Adjacent',
'3' => 'Opposite');
function createSideDropdown($name) {
global $sides;
$option = "<select name='".$name."'>";
if(!empty($sides)) {
foreach($sides as $id => $sideDesc) {
$option .= "<option value='".$id."'>".$sideDesc."</option>";
}
} else {
die("Error fetching sides!");
}
$option .= "</select>";
echo $option;
}
try {
if(!empty($_POST['submit'])) {
if(empty($_POST['val1']) || empty($_POST['val2'])) {
throw new Exception("Please enter an integer in both boxes.");
}
if(!is_numeric($_POST['val1']) || !is_numeric($_POST['val2'])) {
throw new Exception("One of the numbers you entered is not a valid integer.");
}
$val1 = $_POST['val1'];
$val2 = $_POST['val2'];
$val1numtype = $_POST['val1type'];
$val2numtype = $_POST['val2type'];
$val1nametype = $sides[$val1numtype];
$val2nametype = $sides[$val2numtype];
if($val1numtype == $val2numtype) {
throw new Exception("The two sides of the triangle must be different");
}
if($val1nametype == "Hypotenuse" || $val2nametype == "hypotenuse") {
// work out a small side
$bignum = max($val1, $val2);
$smallnum = min($val1, $val2);
$sqTotal = ($bignum * $bignum) - ($smallnum * $smallnum);
$total = sqrt($sqTotal);
echo $bignum."² - ".$smallnum."² = ".$sqTotal."<br />
√".$sqTotal." = ".$total.$_POST['mes'];
} else {
// work out the hypotenuse
$sq1 = $val1 * $val1;
$sq2 = $val2 * $val2;
$sqTotal = $sq1 + $sq2;
$total = sqrt($sqTotal);
echo $val1."² + ".$val2."² = ".$sqTotal."<br />
√".$sqTotal." = ".$total.$_POST['mes'];
}
echo "<br /><br />"; // Seperate the working out from the input
}
} catch(Exception $e) {
echo $e->getMessage()."<br/><br/>";
}
?>
<form method='POST' action='index.php'>
Value 1: <input type='text' name='val1' />
<?php createSideDropdown("val1type"); ?>
<br /><br />
Value 2: <input type='text' name='val2' />
<?php createSideDropdown("val2type"); ?>
<br />
<select name="mes">
<option name="mm">mm</option>
<option name="cm">cm</option>
<option name="m">m</option>
<option name="cm">km</option>
</select>
<br />
<input type="submit" name="submit" />
</form>
?>
감사합니다. 주석 달기에 관한 자료가 있습니까? @param을 보았지만 주위를 둘러 보았지만 결코 연구하지 않았습니다. – Joshwaa
@Joshwaa 이것 좀 봐 : http://en.wikipedia.org/wiki/PHPDoc#Tags – Richard
이것은 초급 질문이기 때문에 나는 클라이언트와 PHP 모두에서 자바 스크립트에서 유효성 검사를 수행하는 일반적인 이유를 추가 할 것이다. (또는 무엇이든)는 다음과 같습니다. 클라이언트를 확인하면 일반적으로 사용자 환경이 개선되지만 클라이언트를 서버에 제출하는 데 사용할 수 있으므로 서버를 확인해야합니다. 서버 코드 만 보안되므로 보안 검사가 서버 측에서 수행되어야합니다 (사용자 경험을 향상 시키려면 클라이언트 측에서 보안 검사를 중복 구현할 수 있지만). – jimhark