Sic Parvis Magna

26 Kasım 2024 Salı

PHP Programlama Temel Anlatım

Kasım 26, 2024 Posted by unexpected No comments

Değişkenler

PHP'de değişken tipleri yoktur. Atanan değere göre otomatik olarak değişkenin tipi verilir. Bir değişkenin veri tipinin ne olduğunu görmek için gettype(); function ile alabiliriz veya settype(); function ile tipini belirleye biliriz.

echo(); function ile tanımladığımız değişkenleri yazdıra biliriz. PHP'de birleştirme operatörü olarak "." (nokta) karakteri kullanılır.

index.php
$var1 = "String";
$var2 = 25;
$var3 = 3.14;

echo "Var1: $var1, Var2: $var2, Var3: $var3";
echo "<br>---------------------------------------<br>";
echo "Value: " . $var1 . "
"; echo "Type: " . gettype($var1);

Sabitler

Sabit tanımları aşağıdaki gibi tanımlanır. Değişkenlerden farkı değiştirelemez olamlarıdır. Bu yüzden tanımlandıkları yerde bir kez değer atanır istenilen her yerde kullanılır.

index.php
define("CONST_STR", "Sabit Varaible");
define("CONST_PI", 3.14);

echo "Sabit: " . CONST_STR . "<br>";
echo "Pi: " . CONST_PI;

Array Tanımı

Arrayleri içlerin de bir den fazla değerler tutabilen değişkenler olarak tanımlaya biliriz.

Arraylerin iki farklı kullanımları vardır:

  • Eski Kullanım: $array1 = array();
  • Modern Kullanım: $array2 = [];

Array içine eleman eklemenin temelde iki yolu vardır:

  • $array1[] = "Eleman 1";
  • array_push($array2, "Eleman 2");

Her eklenen değerlerin key değerleri 0'dan başlayarak kaldığı yerden veri eklendikçe artarak devam eder. Arrayleri echo function ile direk olarak yazdırmamız mümkün değildir. Bunun için var_dump(), print_r() functionları kullanılmalıdır.

index.php
$array1 = array();
$array2 = [];

$array2[] = "Eleman 1";
$array2[] = "Eleman 2";
$array2[] = "Eleman 3";

var_dump($array2);
echo "<br>";
print_r($array2);

Eğer eklenen valueların keylerini kendimiz vermek istiyorsak array'e eleman eklerken köşeli parantez içinde belirtebiliriz.

index.php
$array1["key1"] = "value 1"

Bir arraydeki değerleri satır satır çekmenin yolu ise foreach'tir

index.php
foreach($array2 as $value)
{
	echo $value . "<br>";
}

Bir de arrayler de boyut dediğimiz bir kavram vardır. Array içine bir array ataması gerçekleştirdiğimiz de bu array aslında 2 boyutlu bir array haline gelir.

index.php
$array3 = [];
$array3[] = ["0. Eleman 1", "0. Eleman 2", "0. Eleman 3"];
$array3[] = ["1. Eleman 1", "1. Eleman 2", "1. Eleman 3"];
$array3[] = ["2. Eleman 1", "2. Eleman 2", "2. Eleman 3"];

print_r($array3);
echo "<br>";
foreach($array3 as $value)
{
	print_r($value);
	echo "<br>";
}

Aritmetik Operatörler

  • (+) Toplama Operatörü
  • (-) Çıkartma Operatörü
  • (*) Çarpma Operatörü
  • (/) Bölme Operatörü
  • (%) Mod Operatörü
  • ($i++) $i değişkeni işlendikten sonra içindeki değeri 1 artır.
  • ($i--) $i değişkeni işlendikten sonra içindeki değeri 1 azalt.
  • (++$i) $i değişkenin içindeki değeri 1 artırdıktan sonra işle.
  • (--$i) $i değişkenin içindeki değeri 1 azalttıktan sonra işle.
index.php
$x = 30;
$y = 2;

echo ($x + $y) . "<br>"; // 32
echo ($x - $y) . "<br>"; // 28
echo ($x * $y) . "<br>"; // 60
echo ($x / $y) . "<br>"; // 15
echo ($x % $y) . "<br>"; // 0

Atama Operatörleri

  • $x += $y; -> $x = $x + $y;
  • $x -= $y; -> $x = $x - $y;
  • $x *= $y; -> $x = $x * $y;
  • $x /= $y; -> $x = $x / $y;
index.php
echo ($x += $y) . "<br>"; // $x'in yeni değer 32 oldu
echo ($x -= $y) . "<br>"; // $x'in yeni değer 32 olduğundan 32 - 2 = 30. $x tekrardan 30 oldu
echo ($x *= $y) . "<br>"; // 30 * 2 den $x'in yeni değeri 60 oldu
echo ($x /= $y) . "<br>"; // 60 / 2 işlemi yapılacağından $x tekrardan 30 oldu

Karşılaştırma Operatörler

  • (==) Eşittir.
  • (!=) Değil Eşittir.
  • (<>) Değil Eşittir.
  • (<) Küçüktür.
  • (<=) Küçük Eşittir.
  • (>) Büyüktür.
  • (>=) Büyük Eşittir.
index.php
$x = 10;
$y = 20;

if($x == 10)
{
	echo "Eşittir. <br>";
}
else
{
	echo "Eşit Değildir. <br>";
}


if($x == 10)
{
	echo "10'a Eşittir. <br>";
}
else if($x == 13)
{
	echo "13'e Eşittir. <br>";
}
else
{
	echo "Eşit Değildir. <br>";
}

AND ve OR operatörleri ile birden fazla kontrol sağlaya biliriz.

  • and her iki koşulun sağlandığı durumlar da true döndürür. && olarak da kullanılır.
  • or her iki koşuldan biri bile doğru ise true döndürür. || olarak da kullanılır.
index.php
if($x >= 5 && $x <= 15)
{
	echo "5 ile 15 arasındadır. <br>";
}
else
{
	echo "değildir. <br>";
}

$str = "zeynep";
if($str == "ali" || $str == "zeynep")
{
	echo "Ya ali ya zeynep dir. <br>";
}
else
{
	echo "değildir. <br>";
}

Döngüler

$i'nin ilk değeri 0'dır, $i küçük eşit 10 koşulu sağlandığı sürece $i'yi 1 artır

index.php
for($i = 0; $i <= 10; $i++)
{
    echo "i'nin şuanki değeri : " . $i . "<br />";
}

Koşul sağlandığı sürece, yani içindeki koşulun sonucu true olduğu sürece blok içindeki işlemler yapılır.

index.php
$i = 0;
while($i <= 10)
{
    echo "a'nin şuanki değeri : " . $i . "<br />";
    $i++;
}

Koşul kontrol edilmeden önce bloktaki işlemler yapılır, sonra koşul kontrol edilir. $b 0'a eşit olduğu sürece döngünün dönmesi lazım. Daha ilk adımdan koşul sağlanmamasına rağmen, ilk önce blok çalıştığından ekrana yazı basılır.

index.php
$i = 1;
do
{
    echo "blok içindeki işlemler <br />";
}while($i == 0);

Dosya Dahil Etmek

Başka bir dosyayı 2 şekilde dahil edebiliriz.

  • require Dahil etmek istediğimiz dosya yok ise ekrana hata basıp sonraki işlemleri yapmaz.
  • include Dahil etmeye çalıştığımız dosya yok ise ekrana hata basar ve sayfaki diğer işlemleri yapmaya devam eder.
  • require_once ve include_once 1 dosya 1 den fala kez çağrılırsa sadece 1 kere çağrılmış gibi davranmasını sağlar.
index.php
require "external.php";
include "external.php";

require_once "external.php";
include_once "external.php";

Function Oluşturmak

PHP'de function aşağıdaki gibi oluşturulur.

index.php
function func1()
{
	echo "Parameresiz Func";
}

function func2()
{
	return "Parameresiz Func";
}

function func3($x, $y)
{
	echo "Sonuc: " . ($x + $y);
}

function func4($x, $y)
{
	return $x + $y;
}

Class ve Erişim Belirtecleri

  • public her yerden ulaşılabilen.
  • private sadece oluşturulduğu class içinde çağrılabilen
  • protected sadece oluşturulduğu ve miras alınan classlarda çağrılabilen
index.php
class Student
{
    private $name = "Zeynep";
    private $age = "23";

    public function getName()
	{
        echo $this->name;
    }
}

$student = new Student;
student -> getName();

Constructures

  • __construct class'tan yeni bir nesne oluşturulduğunda yapılacak işlemler
  • __destruct class sonlandığında yapılacak işlemler
index.php
class Constructure
{
    function __construct()
	{
        echo "ben doğdum <br />";
    }

    function __destruct()
	{
        echo "ben öldüm <br />";
    }
}

$const = new Constructure;

Miras Almak

index.php
class Hayvan
{
    public function nefesAl()
	{
        echo "ben enfes alıyorum <br />";
    }

    public function yemekYe()
	{
        echo "ben yemek yiyorum <br />";
    }

    public function uyu()
	{
        echo "ben uyuyorum <br />";
    }
}

class Kedi extends Hayvan
{
    private $adi;

    function __construct($gelenad)
	{
        $this->adi = $gelenad;
        echo "ben $this->adi isminde bir kediyim ve doğdum <br />";
    }

    public function kos()
	{
        echo "ben koşuyorum çünkü kediyim <br />";
    }

    function __destruct()
	{
        echo "ben $this->adi ismindeki kediydim öldüm <br />";
    }
}

class Kus extends Hayvan
{
    private $adi;

    function __construct($gelenad)
	{
        $this->adi = $gelenad;
        echo "ben $this->adi isminde bir kuşum ve doğdum <br />";
    }

    public function uc()
	{
        echo "ben uçabiliyorum çünkü kuşum <br />";
    }

    function __destruct()
	{
        echo "ben $this->adi ismindeki kuştum öldüm <br />";
    }
}

$cat = new Kedi("tekir");
$cat -> yemekYe(); 		// Hayvan class'ı miras alındığından Hayvan classının methodu kullanılabilir.
$cat -> kos(); 			// kendi class'ında bir methodu kullandı
// $cat -> uc();		// hata! kuşa ait olan bir methodu kullandı

$bird = new Kus("boncuk");
$bird -> yemekYe(); 	// Hayvan class'ı miras alındığından Hayvan classının methodu kullanılabilir.
$bird -> uc(); 			// kendi class'ında bir methodu kullandı
// $bird -> kos(); 		// hata! kediye ait olan bir methodu kullandı

Cookie ve Session Oluşturmak

Sayfada session ile işlem yapmak istiyorsam session_start(); demeliyim

Session ve Cookie, unutulmayan değişkenlerdir. Bu sayfada 1 kere tanımladıktan sonra başka sayfada istediğiniz gibi kullanabilirsiniz.

Farkları nedir:

  • Cookie, browser'ınızda tutulur. 3. parametrede unix time stamp formatı ile girilen zaman geldiğinde cookie kendini unset eder yani siler
  • Session, server'da tutulur. Browser kapatıldığında serverdaki session dosyası kendini unset eder

Cookie Oluşturmak

index.php
setcookie("bilgiler", "adim=zeynep,soyad=asd", time() + (7 * 24 * 60 * 60) );

// Anahtarı 'bilgiler' olan, içinde 'adim=zeynep,soyad=asd' değerini taşıyan ve 
// tam 1 hafta sonra bugün bu saatte yok olacak bir cookie set ettim.
echo $_COOKIE["bilgiler"] . "<br />";

Session Oluşturmak

index.php
$_SESSION["bilgiler"] = "adım = ahmet, soyadım = mehmed";

echo $_SESSION["bilgiler"] . "<br />";

Try Catch Tanımı

index.php
$str = "zeynep deneme SELECT dfsdf ,sdfsdfds ";
try
{
    if(strstr($str, "SELECT"))
	{
        throw new Exception("ismin içinde select kelimesi var");
    }
	
    echo "eğer hata yok ise, yani str değişkenin içinde SELECT kelimesi geçmiyor, yeni bir Exception oluşturulmamış ise yapılacak işlemler";
}
catch(Exception $e)
{
    echo "hata var! " . $e -> getFile() . " dosyasının " . $e -> getLine() . ". satırında yeni bir hata tespit edilmiş!. hata mesajının içeriği = " . $e -> getMessage();
}

0 comments:

Yorum Gönder