06/07/2024, 11:31
fikretyn
PHP Kod:
<!DOCTYPE html>
<html>
<head>
<title>PHP Hesap Makinesi</title>
</head>
<body>
<!-- HTML formu kullanıcıdan iki dizi ve bir işlem türü almak için -->
<form method="post">
Dizi 1: <input type="text" name="array1" placeholder="Örnek: 10,20,30,40"><br>
Dizi 2: <input type="text" name="array2" placeholder="Örnek: 2,4,6,8"><br>
İşlem:
<select name="operation">
<option value="add">Toplama</option>
<option value="subtract">Çıkarma</option>
<option value="multiply">Çarpma</option>
<option value="divide">Bölme</option>
</select><br>
<input type="submit" value="Hesapla">
</form>
<?php
// Formun gönderilip gönderilmediğini kontrol eder
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Kullanıcıdan gelen verileri alır
$array1 = explode(',', $_POST['array1']); // Dizi 1'i virgülle ayrılmış stringten diziye dönüştürür
$array2 = explode(',', $_POST['array2']); // Dizi 2'yi virgülle ayrılmış stringten diziye dönüştürür
$operation = $_POST['operation']; // Seçilen işlemi alır
// Dizileri integer'a çevir
$array1 = array_map('intval', $array1);
$array2 = array_map('intval', $array2);
// Hesap makinesi fonksiyonları
function add($a, $b) {
return $a + $b;
}
function subtract($a, $b) {
return $a - $b;
}
function multiply($a, $b) {
return $a * $b;
}
function divide($a, $b) {
if ($b == 0) {
return "Division by zero error!";
}
return $a / $b;
}
// İlgili fonksiyonu seç ve array_map ile uygula
switch ($operation) {
case 'add':
$result = array_map('add', $array1, $array2);
break;
case 'subtract':
$result = array_map('subtract', $array1, $array2);
break;
case 'multiply':
$result = array_map('multiply', $array1, $array2);
break;
case 'divide':
$result = array_map('divide', $array1, $array2);
break;
default:
$result = "Invalid operation!";
}
// Sonucu yazdır
if (is_array($result)) {
echo "Sonuç: " . implode(", ", $result); // Dizi sonucunu virgülle ayrılmış string olarak yazdırır
} else {
echo $result; // Hata mesajını yazdırır
}
}
?>
</body>
</html>
Açıklamalar
HTML Formu
<!DOCTYPE html>
<html>
<head>
<title>PHP Hesap Makinesi</title>
</head>
<body>
<form method="post">
Dizi 1: <input type="text" name="array1" placeholder="Örnek: 10,20,30,40"><br>
Dizi 2: <input type="text" name="array2" placeholder="Örnek: 2,4,6,8"><br>
İşlem:
<select name="operation">
<option value="add">Toplama</option>
<option value="subtract">Çıkarma</option>
<option value="multiply">Çarpma</option>
<option value="divide">Bölme</option>
</select><br>
<input type="submit" value="Hesapla">
</form>
[*]Bu bölümde, kullanıcıdan iki dizi ve bir işlem türü almak için bir Html formu oluşturulmuştur. [*]method="post" ifadesi, formun gönderim yönteminin POST olduğunu belirtir. input elemanları, kullanıcıdan array1, array2 ve operation değerlerini alır. select elemanı, kullanıcıya dört farklı işlem seçeneği sunar. submit butonu, formun gönderilmesini sağlar.
PHP Kodu
PHP Kod:
<?php
// Formun gönderilip gönderilmediğini kontrol eder
if ($_SERVER["REQUEST_METHOD"] == "POST") {
PHP Kod:
// Kullanıcıdan gelen verileri alır
$array1 = explode(',', $_POST['array1']); // Dizi 1'i virgülle ayrılmış stringten diziye dönüştürür
$array2 = explode(',', $_POST['array2']); // Dizi 2'yi virgülle ayrılmış stringten diziye dönüştürür
$operation = $_POST['operation']; // Seçilen işlemi alır
array1 ve array2 değerleri virgülle ayrılmış stringlerdir. explode(',', $_POST['array1']) ifadesi, bu stringleri virgüllere göre ayırarak bir diziye dönüştürür. $_POST['operation'] ifadesi, seçilen işlemi alır.
PHP Kod:
// Dizileri integer'a çevir
$array1 = array_map('intval', $array1);
$array2 = array_map('intval', $array2);
Hesap Makinesi Fonksiyonları
PHP Kod:
function add($a, $b) {
return $a + $b;
}
function subtract($a, $b) {
return $a - $b;
}
function multiply($a, $b) {
return $a * $b;
}
function divide($a, $b) {
if ($b == 0) {
return "Division by zero error!";
}
return $a / $b;
}
fonksiyonu, bölme işlemi sırasında sıfıra bölme hatasını kontrol eder ve bu durumda bir hata mesajı döndürür.
İşlemi Seç ve Uygula
PHP Kod:
// İlgili fonksiyonu seç ve array_map ile uygula
switch ($operation) {
case 'add':
$result = array_map('add', $array1, $array2);
break;
case 'subtract':
$result = array_map('subtract', $array1, $array2);
break;
case 'multiply':
$result = array_map('multiply', $array1, $array2);
break;
case 'divide':
$result = array_map('divide', $array1, $array2);
break;
default:
$result = "Invalid operation!";
}
- Kullanıcının seçtiği işleme göre, uygun fonksiyon
array_map ile iki diziye uygulanır. array_map('function_name', $array1, $array2) ifadesi, function_name fonksiyonunu array1 ve array2 dizilerinin elemanları üzerinde sırayla uygular.
Sonucu Yazdır
PHP Kod:
// Sonucu yazdır
if (is_array($result)) {
echo "Sonuç: " . implode(", ", $result); // Dizi sonucunu virgülle ayrılmış string olarak yazdırır
} else {
echo $result; // Hata mesajını yazdırır
}
}
?>
is_array($result)
ifadesi, result değişkeninin bir dizi olup olmadığını kontrol eder. Eğer resultbir dizi ise, implode(", ", $result) ifadesi diziyi virgülle ayrılmış bir stringe dönüştürerek sonucu ekrana yazdırır. Eğer result bir dizi değilse (örneğin, bir hata mesajı ise), doğrudan yazdırılır.