PHP dilinde yazılım mülakatlarında karşılaşılabilecek sorular, adayın bilgi düzeyine göre değişiklik gösterebilir. Bu nedenle, kolaydan zora doğru örnek sorular ve cevaplarını paylaşacağım. Sorular hem sözlü hem de kodlu mülakatlarda karşılaşılabilir ve öğrencilerin temelden ileri seviyeye doğru ilerlemesini hedefleyecek şekilde düzenlenmiştir.
Kolay Seviye Sorular
PHP’de bir değişken nasıl tanımlanır?
- Cevap: PHP’de değişkenler
$sembolü ile başlar. Örneğin:$isim = "Ahmet"; $yas = 25; - Açıklama: Değişken isimleri
$ile başlar ve harf veya alt çizgi ile devam eder.
PHP’de echo ve print komutlarının farkı nedir?
- Cevap:
echoveprintkomutları ekrana çıktı vermek için kullanılır. Aralarındaki fark:echobirden fazla parametre alabilir ve genellikle daha hızlıdır.printyalnızca bir parametre alır ve her zaman 1 döner (başarı durumu).
PHP’de veri tipleri nelerdir?
- Cevap: PHP’deki temel veri tipleri şunlardır:
- String (Metin): Örneğin
$isim = "Ali"; - Integer (Tam sayı): Örneğin
$yas = 30; - Float (Ondalık sayı): Örneğin
$sayi = 10.5; - Boolean (Doğru/Yanlış): Örneğin
$durum = true; - Array (Dizi): Örneğin
$liste = array("Elma", "Armut"); - Object (Nesne): Sınıflardan oluşturulmuş veri tipidir.
- String (Metin): Örneğin
PHP’de fonksiyon nasıl tanımlanır?
Cevap:
function topla($sayi1, $sayi2) {
return $sayi1 + $sayi2;
}
echo topla(5, 10); // Çıktı: 15
Açıklama: function anahtar kelimesi ile fonksiyon tanımlanır ve return ifadesi ile geri dönüş değeri döndürülebilir.
Orta Seviye Sorular
PHP’de bir diziyi nasıl sıralarsınız?
Cevap:
$sayiDizisi = array(3, 1, 4, 2, 5);
sort($sayiDizisi);
print_r($sayiDizisi);
Açıklama: sort() fonksiyonu diziyi artan sırayla sıralar. Dizi anahtarları yeniden sıralanır.
PHP’de for ve foreach döngüsünün farkı nedir?
- Cevap:
fordöngüsü genellikle bir sayaç kullanılarak belirli sayıda tekrar için kullanılırken,foreachdöngüsü diziler veya koleksiyonlar üzerinde gezinmek için kullanılır.
Örnek for döngüsü:
for ($i = 0; $i < 5; $i++) {
echo $i;
}
Örnek foreach döngüsü:
$dizi = array("Elma", "Armut", "Kiraz");
foreach ($dizi as $meyve) {
echo $meyve;
}
PHP’de $_GET ve $_POST arasındaki fark nedir?
- Cevap:
$_GET, URL üzerinden veri göndermek için kullanılırken,$_POSTform verilerini güvenli bir şekilde sunucuya göndermek için kullanılır.$_GETverileri URL’de görünürken (örneğin:www.site.com?sayi=5),$_POSTverileri gizlidir ve genellikle form işleme işlemlerinde tercih edilir.
PHP’de include ve require arasındaki fark nedir?
- Cevap: Her iki fonksiyon da başka bir PHP dosyasını içe aktarmak için kullanılır, ancak
requirebir hata ile karşılaşıldığında betiğin çalışmasını durdururken,includesadece bir uyarı gösterir ve betik çalışmaya devam eder.
Örnek:
include 'header.php'; // Dosya bulunmazsa uyarı verir, kod devam eder.
require 'header.php'; // Dosya bulunmazsa hata verir ve betik durur.
PHP’de bir sınıf nasıl tanımlanır?
Cevap:
class Araba {
public $renk;
public $model;
public function __construct($renk, $model) {
$this->renk = $renk;
$this->model = $model;
}
public function bilgileriGoster() {
return "Bu araba " . $this->renk . " renkte ve " . $this->model . " model.";
}
}
$araba = new Araba("kırmızı", "BMW");
echo $araba->bilgileriGoster(); // Çıktı: Bu araba kırmızı renkte ve BMW model.
Açıklama: Sınıflar, nesne yönelimli programlama (OOP) paradigmasını kullanarak nesneler oluşturmak için kullanılır. __construct bir sınıfın oluşturucusudur ve sınıf oluşturulduğunda otomatik olarak çalışır.
Zor Seviye Sorular
PHP’de PDO kullanarak bir veritabanına nasıl bağlanırsınız?
Cevap:
try {
$baglanti = new PDO("mysql:host=localhost;dbname=ornekVeritabani", "kullaniciAdi", "sifre");
$baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Bağlantı başarılı!";
} catch (PDOException $e) {
echo "Bağlantı hatası: " . $e->getMessage();
}
Açıklama: PDO (PHP Data Objects), veritabanına güvenli ve esnek bir şekilde bağlanmak için kullanılan bir yöntemdir. Hata yönetimi için try-catch bloğu kullanılır.
PHP’de SQL enjeksiyonuna karşı nasıl korunursunuz?
Cevap: SQL enjeksiyonuna karşı korunmak için parametreli sorgular (prepared statements) kullanılmalıdır. Örnek:
$sorgu = $baglanti->prepare("SELECT * FROM kullanicilar WHERE email = :email");
$sorgu->bindParam(':email', $email);
$sorgu->execute();
Açıklama: Bu yöntem, kullanıcı girdilerini doğrudan SQL sorgusuna dahil etmeden önce temizler, böylece zararlı kodlar çalıştırılamaz.
PHP’de Singleton deseni nasıl uygulanır?
Cevap:
class Singleton {
private static $instance = null;
private function __construct() {}
public static function getInstance() {
if (self::$instance == null) {
self::$instance = new Singleton();
}
return self::$instance;
}
}
$obj1 = Singleton::getInstance();
$obj2 = Singleton::getInstance();
// $obj1 ve $obj2 aynı instance'dir.
Açıklama: Singleton deseni, bir sınıfın yalnızca bir örneğinin oluşturulmasına izin verir. Sınıfın yapıcısı (__construct) private yapılarak doğrudan yeni bir nesne oluşturulması engellenir.
PHP’de Exception Handling nasıl yapılır?
Cevap:
function bol($bolunen, $bolen) {
if ($bolen == 0) {
throw new Exception("Bölen 0 olamaz.");
}
return $bolunen / $bolen;
}
try {
echo bol(10, 0);
} catch (Exception $e) {
echo "Hata: " . $e->getMessage();
}
Açıklama: Hata yakalama mekanizması (Exception Handling) kullanılarak beklenmeyen durumlarda betiğin düzgün çalışması sağlanır.
Bu sorular, mülakatlarda karşılaşabileceğiniz tipik sorulardan bazılarıdır. Sorulara verdikleri yanıtlarla, temel PHP bilgisinden nesne yönelimli programlamaya kadar bilginizi sınayabilirsiniz. İkinci kısım da yakında eklenecektir. Oradaki sorular çalışma hayatındaki şartlara daha yakın sorular olacaktır
