PHP ‘Fonksiyonlar’
Fonksiyonlar işlerin daha hızlı yapılmasını sağlar. Programlama dillerinde fonksiyonların kullanılması aynı kodun defalarca yazılmasını önler.
Php dilinde fonksiyon yazmak için function anahtar kelimesi kullanılmaktadır. Fonksiyonlar ya harf ile ya da _ (alt tire) ile başlamalıdır.
function ikiyeKatla($sayi1) {
return ($sayi1 * 2);
}
echo ikiyeKatla(6); çıktı - 12- Anonim fonksiyonlarda isim belirtmeyiz, ekrana yazdırmak için değişken aktarırız.
$test = function() { return “test”; }
echo $test;
// output : test- Recursive fonksiyonlarda bir fonksiyon oluşturduğunuzda, aynı fonksiyonu fonksiyon içinde kullanabilirsiniz.
Function say($ugur){
echo $ugur;
If ($ugur < 10) {
say($ugur + 1);}}
say(1);Function Exists, belirtilen değere göre bir fonksiyonun var olup olmadığıını kontrol eder.
If (funtion_exists(’Hifa Öner’))
{ echo "var" }Yield; tıpkı return gibi geriye değer döndürür ama return‘den farklı olarak fonksiyonu sonlandırmaz. Özetle değer üretir. Bu nedenle de yield‘li fonksiyonlara üreteç (generator) denir. Veriyi sunucuda değil RAM’de işler bu da ciddi performans kazandır.
NOT: Fonksiyon içerisinde de erişmek istiyorsak Global Değişken belirtecini kullanırız.
$sayi_bir = 43;
$sayi_iki = 412;
function hesapla (){
global $sayi_bir , $sayi_iki;
echo "Sayı bir = $sayi_bir ve Sayı iki = $sayi_iki ";
}
hesapla();
//Çıktı : Sayı bir = 43 ve Sayı iki = 412NOT: Fonksiyon içinde bir değişkeni, aynı fonksiyon içinde tekrar kullanabilmek için Static Değişken’i kullanırız.
function say () {
static $sayi = 1;
echo $sayi;
$sayi++;
say(); // 1 var
say(); // 1 vardı +1 ekledim 2 oldu
say(); // 2 vardı +1 ekledim 3 oldu
// çıktı: 1 2 3
TANIMLI FONKSİYONLAR
array_count_values() : dizideki elemanların kaç kez tekrarlandığını gösterir.
shuffle() : dizi elemanlarını rastgele karıştırır. ( shuffle($dizi); )
array_combine() : 2 farklı diziyi birleştirip yeni dizi oluşturur.
array_flip() : dizideki anahtar ve değerleri yer değiştiren koddur.
array_key_exists() : dizi içindeki anahtarın olup olmadığını kontrol eden koddur. ( array_key_exists (‘name’, $dizi) )
array_map() : bir dizinin her değerini bir fonksiyonla tekrar üretilmesini sağlayan fonksiyondur.
function kup($n) { return ($n * $n * $n);
}
// Üç defa kendisiyle çarptırarak küpünü alıyoruz
$а = [1, 2, 3, 4, 5];
$b = array_map('kup', $a);
print_r($b);
// output/cikt1: Array [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] =>125array_filter() : dizilerin değerlerini filtreleyerek dizi haline çeviren fonksiyondur.
array_merge() : iki diziyi birleştirmek için kullanılır.
array_rand() : diziden rastgele eleman gösterir.
array_reverse() : dizi tersine çevrilir.
In_array() : dizide bir değerin olup olmadığını kontrol eder.
array_shift() : dizinin ilk elemanını almaya yarar.
array_unshift() : dizinin başına eleman eklemeye yarar
array_pop() : dizinin son elemanını almaya yarar.
array_push() : dizinin sonuna eleman eklemeye yarar.
array_product() : dizideki sayıların çarpımını verir.
array_unique() : dizideki tekrar eden verilerin 1 adet olmasını sağlar.
array_values () : mevcut dizide anahtar varsa onları kaldırarak yeni bir dizi haline getirir.
array_push () : diziye yeni eleman ekler.
array_keys () : diziye ait tüm anahtarları gösterir.
current() : dizinin ilk elemanını yazdırır.
end() : dizinin son elemanını yazdırır.
extract() : dizinin içindeki anahtarları değişken gibi kullanmamızı sağlar.
reset() : next ve prev kullanılınca diziyi sıfırlamak için kullanılır.
asort() : değerlere göre küçükten büyüğe, a’dan z’ye göre sıralayan fonksiyondur. arsort ise tam tersidir.
strlen() : karakter sayısını yazan fonksiyondur.
strstr() : bir yazı içinde bir değer aramaya yarayan fonksiyondur.
strpos() : bir yazıda aranan şeyin karakter numarasını verir.
str_split($metin,$sayi) : Metni verilen sayı kadar karakter gruplarına bölerek bir diziye dönüştürür. Eğer sayı belirtilmezse, metni harf harf bölerek bir diziye atar.
ucwords() : her kelimenin baş harfini, büyütmek için kullanılır.
ucfirst() : cümlenin ilk harfini büyültür.
strtolower() : büyük yazılan karakterleri küçüğe çevirir.
strtoupper() : küçük yazılan karakterleri büyüğe çevirir.
trim() : karakter temizlemeye yarar, genelde boşluk silmek için kullanılır.
Itrim() : soldaki baş karakteri temizlemeye yarar.
substr() : bir yazı içindeki belirtilen aralıklari belirleyip yazdırır.
str_replace() : yazı içindeki bir karakteri sizin belirlediğiniz bir karakterle değiştirir.
str_repeat() : bir yazıyı belirtilen sayı kadar yazar.
printf() : bir yazıyı dizeler ile tekrar biçimlendiren fonksiyondur.
vprntf() ise parametre değil dizi olarak yazar.
sprintf() : printften farkı echo ile ekrana yazdırmaz çünkü return olarak değerlendirir.
pow() : Üslü sayıları hesaplamak için kullanılır
vsqrt() : Belirtilen $x sayının karekökünü gönderir
abs() : Verilen $x sayının mutlak değerini verir
round() : Verilen $x sayısını belirtilen sayıda ondalik kalacak şekilde en yakın sayıya yuvarlar
floor() : Verilen $x sayısını her zaman aşağıya tam sayı olacak şekilde yuvarlar
ceil() : Verilen $x sayısını her zaman yukarıya tam sayı olacak şekilde yuvarlar
rand(min,mak) : Verilen aralıkta rastgele bir tamsayı üretir
pi() : Bu fonksiyon pi sayısını göndermektedir.
exp() : Matematikte yaklaşık 2.718281828459 olarak bilinen e sayısının kuvvetlerini he saplar ve gönderir.
chr($sayi) : Verilen ascii koda karşılık gelen karakteri verir.
time() : Şuan ki zaman bilgisini (tarih, saat, dakika ve saniye) unix epoch biçiminde gönderir.
mktime($saat,$dakika,$saniye,$ay,$gun,$yil) : Tam olarak belirtilen zamana gitmeyi sağlar.
getdate($zaman) : Unix epoch biçiminde verilen zamanın bilgisini bir dizi şeklinde gönderir.
date($bicim,$zaman) : Unix epoch biçimindeki zaman bilgisini ekranda istenilen biçimde göstermek için kullanılır.
Veri tipini öğrenmek için gettype fonksiyonunu, veri tipini değiştirmek için ise settype fonksiyonunu kullanırız.
Dizi Fonksiyonları = count, in_array, array_search, sort($dizi), rsort($dizi), asort, arsort, array_merge, array_keys, array_push
Matematiksel Fonksiyonlar = pow, vsqrt, abs, round, floor, ceil, rand, pi, exp String Fonksiyonları = strlen, chr, explode, implode, str_split, ltirm, substr, strtolower, ucfirst, str_replace
Zaman Fonksiyonları = time, mktime, getdate, date
PHP’de fonksiyon argümanları değer olarak (öntanımlı), referans olarak ve öntanımlı argüman değeri olarak geçirilebilir.
- Değer olarak geçirme : Fonksiyona geçirilen değişkenin sadece bir kopyası geçirilir. Bu nedenle, fonksiyon içinde değişken değeri üzerinde yapılan değişiklikler asıl değişken değerini etkilemez.
- Referans olarak geçirme : Fonksiyona geçirilen değişken önüne & işareti konularak referans yoluyla geçirilir. Böylelikle, fonksiyon içinde değişken değeri üzerinde yapılan değişiklikler asıl değişken değerini etkiler.
- Argüman değeri olarak geçirme : Argüman tanımlanmış bir fonksiyona herhangi bir değer geçirilmeden çağrı yapıldığında kullanılmak üzere, mevcut argümanlar için öntanımlı değerler atanabilir.
NOT
Public özelliği verilen nesneler (fonksiyon yada değişkenler) dışardan değer alabilirler.
Private özelliğinde ise bir değişken yada fonksiyon dışardan değer alamaz. Sadece o nesneyi sınıf içerisindeki nesneler kullanabilir.
Static olarak tanımlanan her nesne RAM bellekte saklanır. ( Aslında hepsi ram bellekte saklanır fakat bu metodun saklanma şekli farklıdır. ) ve erişilmeside oldukça hızlıdır. Ayrıca static özelliği verdiğiniz bir nesneyi, sınıfı bir değişkene tanımlamadan kullanabilirsiniz. Kısacası sınıf içindeki static bir nesne php tarafından her an kullanılabilir hale getirilir ve hazır tutulur.
Normalde sınıf içerisinde bir nesneyi kullanacağımız zaman $this-> ile çağırırız fakat static olarak tanımladığınız bir nesneyi sınıf içerisinde bir yerde kullanacağınız zaman $this-> yerine self:: ile çağırırız.
