PHP’de, genel ya da fonksiyon içindeki tüm kodlar tarafından kullanılabilen önceden tanımlanmış değişkenlere Superglobals değişkenler adı verilir. Bu değişkenlere fonksiyonlar içinden erişim sağlamak için ayrıca global olarak tanımlamak gerekmez.
$GLOBALS değişkeni
$GLOBALS değişkeni, PHP kodları içinde global alandaki tüm değişkenlere erişimi sağlar. Bu değişkene bağlı olan bir dizi içinde PHP kodları içinde tanımlanmış olan tüm değişkenlere ait referanslar yer alır.
Örnek
Devamı...
Bir kullanıcı bir web sitesine girip çıktıktan sonra; kullanıcının o web sitesinin sayfalarında girdiği veriler tamamen kaybolur. Eğer bu verilerin saklanmasına ihtiyaç duyulursa, çerezler (Cookies) veya oturumlar (Sessions) kullanılır.
Çerez ve oturumun en önemli farkı; çerezlerin kullanıcının bilgisayarındaki tarayıcıya, oturum değerlerinin ise sunucuya kaydedilmesidir.
Oturumlar sadece kullanıcının sunucu üzerinde tanımlanabilmesi için eşsiz bir değer (UID) içeren bir çerez kullanır. Oturumlar her kullanıcı için bir UID oluştur ve bu UID’ye göre değişkenleri kaydederek çalışır.
PHP’de oturumlar daha sonraki sayfa girişlerinde belirli verileri saklamaya yarar. Kullanıcının herhangi bir web sayfasına giriş yaptıktan sonra girdiği değerler oturum değişkenlerine aktarılır. Böylece kullanıcı aynı sayfayı tekrar çağırdığında veya aynı web sitesinin farklı sayfalarına giriş yaptığında; oturum değişkenlerinde saklanan veriye, tekrar veri girişi yapmaya gerek kalmadan, erişim sağlar. Oturum değişkenleri sadece tek bir kullanıcı için bilgiler içerir
Bir kullanıcı bir web sitesine girdiğinde, kullanıcı tarafından girilen bilgiler ilerde kullanılmak üzere PHP tarafından SESSION değişkenine atanır. PHP aynı bilgileri, kullanıcı web sitesinden çıktıktan sonra korumak için, bir veritabanına kaydeder.
Oturum (SESSION) çalışma sırası:
- Oturumda kullanıcı bilgilerini kaydetmeden önce, öncelikle session_start() komutu ile oturumun başlatılması gerekir.
session_start() komutu <html> ifadesinden önce yer almalıdır.
Bu komutla kullanıcının oturumu sunucuya kaydedilir ve oturum için bir UID tahsis edilir.
-
Oturum başlatıldıktan sonra $_SESSION değişkeni kullanılarak oturum değişkenleri kaydedilir ve bu değişkenlere erişim sağlanır.
-
isset() değişkeni kullanılarak oturum değişkenlerinin tanımlanıp tanımlanmadığı kontrol edilir.
-
Oturum tanınmlanan değişkenleri silmek için unset() metodunu ve kullanıcı oturum bilgilerini tamamen silmek için session_destroy() metodunu kullanabilirsiniz:
Bir oturum değişkenini unset() metodu ile sildiğinizde aynı sayfada o değişkene bir daha erişim sağlayamazsınız. Ancak; session_destroy() metodunu kullandığınızda, sayfayı kapatmadığınız sürece oturum değişkenlerine erişim sağlayabilirsiniz.
Örnek
Devamı...
C++ programlama dilinde büyük ve küçük harflere farklı işlem yapılmaktadır:
Örneğin: “Fonksiyon” ve “fonksiyon” kelimeleri tamamen farklı kabul edilir.
İsim alanı kullanarak program oluşturma
Şimdi, en basit şekilde oluşturulmuş ilk C++ programımızı incelemeye çalışalım:
Örnek
Devamı...
Öncelikle, C++ programlama dilinin gelişimine kısaca bir göz atalım. Daha sonra, bir C++ programının temel yapısını oluşturan elemanları, en basit program yapısından itibaren basamak basamak ilerleyerek incelemeye çalışacağız.
C++ Programlama Dilinin gelişimi
Brian Kernighan ve Dennis Ritchie tarafından geliştirilen ve 2000 yılında, ANSI (American National Standart Institute) tarafından yeniden uyarlanan ANSI ISO/IEC 9899:1990 standardı “C99” ile en son standart şeklini alan “C Programlama Dili” günümüzde halen yaygın olarak kullanılmaktadır.
Bjarne Stroustrup 1983 ile 1985 yılları arasında, C diline eklemeler yaparak ve Simula dilinin nesneye yönelik özelliklerini kullanarak geliştirdiği C++ diline ilk olarak “Sınıflarla C” adını verdi. 1983 yılında dilin ismi C++ olarak değiştirildi.
C programlama dili dünyada en yaygın olarak kullanılan dil olmasına rağmen, büyük çaplı ve karmaşık yapıya sahip programların daha kolay organize edilmesi ve geliştirilmesi için, C++ dili ile birlikte gelen Nesneye Dayalı Programlama (Object Oriented Programming) yöntemi programcıların büyük çaplı programlarla daha düzenli ve esnek çalışmasına olanak sağladı.
C++ icat edildiğinden bu yana eklemeler ve değişiklikler yoluyla değişikliğe uğramıştır. İlk değişiklik 1985 yılında, ikincisi ise 1990 yılında oldu. Üçüncü düzenleme ile, ANSI (Amerikan Ulusal Standartları Enstitüsü) ve ISO (Uluslararası Standartlar Organizasyonu) standardizasyon komitesinin ortaklaşa çalışması ile 1994 yılında Bjarne Stroustrup’un belirlediği esaslara bir takım özellikler ekleyerek bir taslak oluşturuldu. Daha sonra, Alexander Stepanov tarafından oluşturulan Standard Template Library (STL)’nin eklenmesiyle birlikte 1998 yılında C++ programlama dili ANSI/ISO Standardının ilk sürümü onaylandı. 2003 yılında yapılan bir değişiklikten sonra, eklenen yeni özelliklerle, C++ programlama dilinin C++11 standardı 2011 yılında, C++14 standardı 2014 yılında ve C++17 standardı 2017 yılında yayınlandı.
Neden C++ Programlama Dili
Dünyanın en popüler programlama dillerinden biri olan C++, işletim sistemleri, Grafik Kullanıcı Arayüzleri, gömülü sistem ve oyun yazılımlarında yaygın olarak kullanılmaktadır.
C dilinin özelliklerine ek olarak, belirli verilerin bu verilerle ilgili kodlarla ilişkilendirilmesi temel prensibine bağlı olan Nesneye Yönelik Programlama (NYP - Object Oriented Programming) prensibine uygun olarak çalışabilmektedir. Nesneye yönelik programlamada, verilere işlem yapacak kodların metod adı verilen fonksiyonlar içinde yazılması ve verilerle birlikte tek bir yapı içinde tanımlanması ve tüm işlem yetkilerinin bu yapı içinde belirlenmesi sağlanmaktadır.
C++ programlama dili ile, prosedürel ve nesneye yönelik programlama yapılabilmektedir. Donanım kaynaklarına ve sistem fonksiyonlarına doğrudan erişim sağlamakta, kütüphanelerin oluşturulmasını ve C, C++ ve diğer dillerde yazılmış olan kütüphanelerin kullanımını kolyalaştırmakta, herhangi bir özel donanım veya sistem platformundan bağımsız olarak çalışmaktadır.
Farklı platformlar arasında taşınabilir olduğundan, birden çok platforma uyarlanabilen uygulamalar geliştirilebilir.
Çok yaygın bir kullanıcı kitlesine, dolayısıyla desteğe sahiptir. Ücretsiz olarak sunulan derleyicileri ve geliştirme ortamlarını rahatlıkla elde edebilirsiniz.
Derleyici (Compiler) ve yorumlayıcı (Interpreter) programlama dilleri
Pratik uygulamalara geçmeden önce, son olarak derleyici ve yorumlayıcı programlama dilleri arasındaki farkı kısaca gözden geçirelim.
Bazı programlama dillerinde yazılan programlar (kaynak kodları) birazdan anlatılacak olan derleme ve bağlama (link) işlemleri sonrasında makina kodları (ikili sayı sistem kodu) na çevrilir ve .exe uzantılı bir dosya elde edilir. Elde edilen bu dosya hangi bilgisayarda olursa olsun ek bir program yükleme gereksinimi olmadan çalıştırılabilir. C++, derleyici programlama dilleri olarak adlandırılan bu grubun içinde yer almaktadır.
Diğer grup ise yorumlayıcı programlama dilleri olarak adlandırılmaktadır. Bu dillerde yazılan programların çalışabilmeleri için kaynak kodlarının bir yorumlayıcı tarafından yorumlanması gerektiğinden, programın çalışacağı her bilgisayara ayrıca yorumlayıcı bir program yüklenmelidir. Yorumlayıcı programın kaynak kodunu satır satır makine koduna çevirerek çalıştırır. Java programlama dili bu gruba örnek olarak gösterilebilir.
Derleyici programı bir kez derlendikten sonra makina kodlarına çevrildiğinden, yorumlayıcı program ise her çalıştığında yorumlanması gerektiğinden, derleyici program daha hızlı çalışır.
switch yapısı bir değişken veya ifadenin sonucuna bağlı olarak içinde yer alan herhangi bir seçenekteki işlem satırlarını çalıştıran bir yapıdır. switch satırında yer alan değişken veya ifade değeri birden fazla case satırında yer alan değerlerle karşılaştırılır ve eşit değerle karşılaşıldığında ilgili satırda yer alan işlem satırları çalıştırılır. Aynı işlem if elseif yapısı ile de yapılabilir. switch yapısında koşul ifadesi başlangıçta bir kez değerlendirilir ve sonuç her case satır değeri ile karşılaştırılır. if elseif yapısında ise koşul her satırda tekrar değerlendirilir. switch yapısının 2 genel yazım şekli aşağıda gösterilmektedir:
Devamı...
PHP’de sınıf içinde aynı veya farklı veri türünden sabit ve değişkenlerle, bu sabit ve değişkenleri kullanan ve işlem yapan fonksiyonlardan oluşan bir yapıdır. Sınıf içinde yer alan değişkenler özellik (property), fonksiyonlar ise metod (method) olarakta adlandırılır. Temel sınıf bildirimi class anahtar kelimesi ve peşinden gelen sınıf adı ile başlar. Daha sonra, sınıf sabit ve değişkenleri ile fonksiyon tanımlamalarının arasında yer aldığı { } parentezleri kullanılır. Geçerli bir sınıf adı bir harf veya alt çizgi ile başlar ve herhangi bir sayıda harf, sayı veya alt çizgilerle devam eder.
Aynı anda birden fazla farklı veri türünü ve fonksiyon tanımlamalarını da barındırabilen sınıf adı altında oluşturulan nesne (object) veri türü ile tüm sınıf içeriğine ulaşabilir ve işlem yapabiliriz.
Sınıf tanımlaması
Sınıf tanımlaması aşağıdaki şekilde yapılır:
Devamı...
return deyimi
return deyimi bir fonksiyonda kullanıldığında içinde bulunduğu fonksiyonun çalışmasını sona erdirir ve kendisine geçirilen değeri fonksiyon çağrısı değeri olarak döndürür. return deyimi aynı zamanda eval() fonksiyonunun veya PHP kod dosyasının çalışmasını sona erdirir.
Global olarak çağrıldığında, içinde bulunduğu komut dosyasının çalışmasını sona erdirir. Eğer aktif dosya include() ya da require() fonksiyonu ile başka bir dosyaya dahil edilmiş ise, return() deyimi kontrolu ana dosyaya aktarır. Eğer aktif dosya include() fonksiyonu ile başka bir dosyaya dahil edilmiş ise return() deyimine geçirilen değer include() çağrısının değeri olarak geri döndürülür.
Devamı...
PHP 5.3.0 ile birlikte gelen isim alanlarını kullanarak, bir projede kullanılan sınıfları daha düzgün bir şekilde gruplandırabilir ve farklı isim alanlarında tanımlanan birden fazla sınıfın aynı sınıf ismi ile tanınlanmasını sağlayabiliriz.
İsim alanları PHP’de kullanılan tüm öğeleri barındırılabilir. Aynı isime sahip sınıf, fonksiyon ve sabit değerleri farklı isim alanları içinde tanımlanarak kullanılabilir.
İsim alanlarının tanımlanması
İsim alanlarında her tür PHP kodu bulunabilmesine karşın sadece sınıflar, fonksiyonlar ve sabitler isim alanlarından etkilenir.
İsim alanlarının bildirimi namespace anahtar kelimesi ile yapılır.
Bir isim alanını içeren bir dosyada isim alanı diğer tüm kodlardan önce dosyanın başında bildirilmelidir. Bu kurala tek istisna declare anahtar kelimesidir. Dosya başında yer alan boşluklar, <html> ve <body> ifadeleri dahil olmak üzere hiç bir ifade bir isim alanı bildiriminden önce yer alamaz.
Devamı...
include, require, include_once ve require_once deyimleri
include() deyimi tanımladığı dosyayı içinde bulunduğu PHP dosyasına ekler. Eklenen dosyanın içinde ye alan PHP kodları include() deyiminin kullanıldığı satırda yazılmış gibi işlem görür.
Dahil edilecek dosyalar, dosya yolu gösteren dizin tanımlanmış ise dosya yoluna göre, tanımlanmamış ise include_path değeri içinde tanınlanmış yollara göre aktif dosyaya dahil edilir. Eğer dosya include_path içinde tanımlanan yollarda bulunamazsa, include() aktif PHP dosyasının yer aldığı dizini kontrol eder. Dosya burada da bulunamazsa, include() deyimi bir hata verir.
Eğer bir yol tanımlaması yapılmışsa, include_path değeri dikkate alınmaz.
require() deyimi ile include() deyimi ile aynı işlemi gerçekleştirir. Tek farkı hata durumunda E_COMPILE_ERROR seviyesinde bir hata vermesidir. seviyesinden ölümcül bir hata vermesi dışında include() deyimi ile aynıdır. include() deyiminin sadece bir uyarı (E_WARNING) vererek çalışmayı sürdürdüğü durumda require() deyimi PHP kodlarının durmasına neden olur.
Devamı...
PHP’de kodlar işlem satırlarından oluşur. Bir işlem satırı bir atama, bir fonksiyon çağrısı, bir döngü, koşul içeren bir işlem satırı veya hiçbir şey yapmayan boş bir işlem satırından oluşabilir. İşlem satırı noktalı virgül ile sonlandırılır. İşlem satırları { ve } işaretleri arasında tanımlanarak işlem satırı grubu oluşturulur.
PHP’de bir işlem satırı veya işlem satırı gruplarının belirli koşullara bağlı olarak çalıştırılması için kontrol yapıları kullanılır.
if yapısı
PHP’de if yapısı kodların belli bir koşula bağlı olarak çalıştırılmasını sağlar.
Devamı...
PHP’de fonksiyon bir veya daha fazla işlem satırından oluşan PHP kodlarının bir kod bloğu şeklinde bir isim altında toplanmasıdır. Sadece fonksiyona verilen isim çağrılarak, fonksiyon içinde yer alan işlem satırlarının çalıştırılması sağlanır. Başka bir ifade ile bir veya daha fazla komutun içinde yer aldığı ve PHP programının herhangi bir yerinden sadece fonksiyon adı çağrılarak, fonksiyon içindeki komutların tamamının çalıştırılmasını sağlayan yapılara fonksiyon adı verilir. Aşağıdaki şekilde tanımlaması yapılır:
Devamı...
PHP’de döngüler içinde yer alan işlem satırlarının belirli bir koşula bağlı olarak istenen sayıda tekrar edilerek çalıştırılmasını sağlayan yapılardır.
while döngüsü
while döngüsü ile ilgili koşul ifadesi doğru (TRUE) sonuç verdiği sürece, döngü içinde yer alan işlem satırları çalışmaya devam eder. Eğer döngü ifadesi başlangıçta doğru sonuç vermezse döngü hiç çalışmaz. Döngü ifadesinin değeri her tekrarın başlangıcında kontrol edilir. İfade değeri, döngü içinde yer alan işlem satırları yoluyla yanlış olacak şekilde değiştirilse bile döngü içinde bulunduğu tekrarı bitirene kadar devam eder. while döngüsünün { } parentezleri ve : (Alternatif yazım) yöntemi ile kullanım şekli aşağıda gösterilmektedir:
Devamı...
Veri tipi belirleme
PHP değişken bildiriminde bir veri türü tanımlamanız gerekmez. Değişkene hangi veri türünü atarsanız, değişken o veri türüne ait bir değişken haline gelir.
Devamı...
Sabit, basit bir değerin adı olup PHP kodlarının çalışması esnasında değiştirilemez. Sabitlerde küçük ve büyük harfler farklı şekilde değerlendirilir. Sabit isimlerinin yazılmasında genellikle büyük harf kullanılır. Sabit adı bir harf veya alt çizgi karakteri ile başlamalı ve harf, rakam ve alt çizgi karakterlerinden oluşan ifadelerle devam etmelidir.
Sabit tanımlamaları
Bir sabit tanımlamak için define() fonksiyonunu veya const anahtar kelimesini kullanabilirsiniz. Bir sabiti tanımladıktan sonra değiştiremez veya tanımsız hale getiremezsiniz.
Sabitlerin değişkenlerden en büyük farkı; bir kez tanımlandıktan sonra değiştirilememeleri ve tüm PHP kodları içinde otomatik bir şekilde global olarak değerlendirilmelidir.
Sabitler içine sadece boolean, integer, float ve string değerler yerleştirebilirsiniz. Sabiti tanımladıktan sonra, sabitin ismini kullanarak sabit değerine erişebilirsiniz. Adını bildiğiniz bir sabitin değerini dinamik olarak almak için constant() fonksiyonunu ve tanımlanmış tüm sabitlerin bir listesini almak için ise get_defined_constants() fonksiyonunu kullanabilirsiniz.
const anahtar kelimesi ile sabit tanımlaması daima bir PHP dosyasının en başında yapılmalıdır. Başka bir ifade ile, fonksiyon, döngü ve if işlem satırlarında tanımlanamaz.
Devamı...
Daha önceki bölümlerde aynı anda sadece tek veri barındırabilen dört temel veri tipi ile aynı anda birden fazla farklı veri türünü barındırabilen ve tek değişken adı ile erişim sağlanabilen ve bileşik bir veri türü olan dizi veri türünü inceledik.
Bu bölümde yine aynı anda birden fazla farklı veri türünü barındırabilen, tek değişken adı erişim sağlanabilen ve bileşik bir veri türü olan, ilaveten içinde fonksiyon tanımlamaları da barındırabilen object veri türünü incelemeye çalışacağız.
Bir nesne verisi oluşturmak için öncelikle içerisinde veri ve fonksiyonları barındıracağımız class (sınıf) adı verilen bir yapı oluşturmamız gerekir. Class yapısını tanımlamak için class ifadesi kullanılır.
Devamı...
İşlemci aldığı bir veya daha fazla değere işlem yaparak farklı bir değer elde eden bir kavramdır. İşlemci aldığı değer veya değerlerle ifade kavramını oluşturur.
İşlemciler aldıkları değer sayısına göre gruplandırılabilir:
- Tekli işlemciler
- Tek bir değer alırlar (Örnek ++ artırım işlemcisi).
- İkili işlemciler
- İki değer alırlar (Örnek + ve - matematik işlemcileri gibi).
- Üçlü işlemci
- Üç değer alır (Bu kategoride sadece ? : işlemcisi vardır).
Aritmetik işlemciler
| İşlemci |
Adı |
Açıklama |
| + |
Toplama |
İki değerin toplamını verir. |
| - |
Çıkarma |
İki değerin farkını verir. |
| * |
Çarpma |
İki değerin çarpımını verir. |
| / |
Bölme |
Bir değerin diğerine bölümünü verir. |
| % |
Kalan |
Bir değerin diğerine bölümünde kalanı verir. |
Bölme işleminde kullanılan her iki değerde tamsayı ise ve birbirlerine tam olarak bölünürlerse sonuç bir tamsayı, aksi takdirde float bir değer olacaktır.
Kalan işlemcisinin değerleri tamsayıdan farklı ise tamsayıya dönüştürülür. Elde edilen sonuç bölünenin işaretini alır.
Örnek
Devamı...
Integer bir değer matematik derslerinde gösterilen tamsayılar kümesinin elemanı olan bir sayıdır:
Z = {…, -2, -1, 0, 1, 2, …}
Integer değerler onluk (decimal), onaltılık (hexadecimal) veya sekizlik (octal) tabanda tanımlanabilirler, ve önlerinde isteğe bağlı bir + veya - işareti bulunabilir.
Sekizlik sayı sisteminde tanımlanan sayıların önüne 0(sıfır), onaltılık sayı sisteminde tanımlanan sayıların önüne ise 0x ifadesi getirilir.
Devamı...
PHP’de ifade değişken ve sabit veriler ile işlemcilerden oluşan ve sayısal bir değer içeren bir kavramdır. İfade içinde yer alan işlemciler verilere gerekli işlemleri yapar. İfadenin oluşması için sadece bir sabit verinin varlığı bile yeterlidir.
ifade = veriler (değişkenler + sabitler) + işlemciler
Örnek
Devamı...
Dizi (Array) aynı veya farklı türden verileri tek bir değişken adı altında toplayıp erişim sağlayabileceğimiz bir bileşik veri türüdür.
Dizi içine yerleştireceğimiz her bir veriyi hem değer adı (key) hem de değer (value) olarak veya sadece değer olarak atayabiliriz.
- değer adı (key)
- Sadece integer veya string veri türü olabilir.
- değer (value)
- Herhangi bir veri türü olabilir.
Bir dizi array() fonksiyonu ile oluşturulur ve bir değişkene atanır:
array ( değer adı => değer, … ); // Değer adı ve değeri birlikte atama
array ( değer, değer, …); // Sadece değer atama
array ( değer adı => değer, değer, … ); // İki yöntemi birlikte kullanma
Farklı değer atama ve erişim yöntemleri
Devamı...
PHP’de değişkenler, herhangi bir veri türündeki değeri depolamak için kullanılan ve bir isim ile ifade edilen bir kavramdır. Bir değişkene bir değer atadıktan sonra, PHP kodları içinde aynı değeri değişken adı ile istediğimiz zaman kullanabiliriz.
PHP değişkenler $ işareti ile başlayan bir değişken adı ile tanımlanır. Değişken adı bir harf veya alt çizgi karakteri ile başlamalı ve harf, rakam ve alt çizgi karakterlerinden oluşan ifadelerle devam etmelidir.
$deg_adi = değişken değeri;
- Değişken adlarında kullanılan harfleri küçük veya büyük olarak tanımladığınızda, değişkeni her işlem yapmanızda harfleri aynı şekilde kullamanız gerekir ($deg_adi ve $Deg_adi birbirinden farklı kabul edilir).
- Değişkenlere boolean, integer, float ve text veri türleri ile dizi (array) değerleri atanabilir.
- PHP’de değişkenlere direk bir değer atadığınız anda bildirimini yapmış sayılırsınız. Değişkene hangi tür veri atarsanız, değişken aynı veri türüne çevrilir.
Örnek
Devamı...