Değişken bir ismi olan ve bilgisayarın belleğinde sayı ya da dizgi gibi bir tür veri saklayan bir depolama yeridir. Değişkende saklanan veriye değişkenin değeri denir. Değişkenler betiğin ne yaptığını anlatan isimler kullanarak verileri saklamanıza, geri almanıza ve üzerlerinde işlem yapmanızı sağlar.
Değişkenlerin Bildirilmesi ve İsimlendirilmesi
Değişkenleri tanımlarken ve isimlendirirken kullandığınız betik dilinin kurallarına uyun. Bir değişkeni kullanmadan önce tanımlamanız gerekmese de, hataların önlenmesi açısından değişkenlerin tanımlanması iyi bir alışkanlıktır. Bir değişken tanımlamak demek, betik motoruna o isimde bir değişkenin varolduğunu ve betik boyunca isminin / değerinin kullanılabileceğini söylemek demektir.
VBScript
VBScript de değişkenlerin önceden tanımlanmasına gerek yoktur, ancak değişkenlerin kullanılmadan önce tanımlanması iyi bir alışkanlıktır. VBScript de bir değişken tanımlamak için Dim, Public, ya da Private ifadelerinden birini kullanın. Örneğin:
<% Dim KullaniciAdi %>
VBScript deki Option Explicit ifadesini bir .asp dosyasında da kullanabilirsiniz, böylece değişkenlerin açık bir şekilde bildirilmesini zorunlu kılmış olursunuz. Option Explicit ifadesi herhangi bir ASP talimatından sonra ve HTML metni ve betik komutlarından önce gelmelidir. Bu ifade yalnızca VBScript ile yazılan ASP komutlarını etkiler, JScript komutları üzerinde bir etkisi yoktur.
JScript
Microsoft JScript sadece bir yordamın yerel değişkenlerinin tanımlanmasını gerekli kılar, fakat burada da bütün değişkenlerin kullanılmadan önce tanımlanmaları iyi bir alışkanlıktır. Bir değişken tanımlarken var ifadesini kullanın. Örneğin:
<% var KullaniciAdi; %>
Değişkenlerin Etkinlik Alanları
Bir değişkenin etkinlik alanı ya da yaşam süresi hangi betik komutlarının o değişkene erişebileceğini belirtir. Bir yordam içinde tanımlanan değişkenin yerel etkinlik alanı vardır. Yordam her işletilişinde değişken yaratılır ve tekrar yok edilir. Yordamın dışındaki herhangi bir şeyden bu değişkene erişilemez. Bir yordamın dışında tanımlanan değişkenin ise evrensel (global) etkinlik alanı vardır. ASP sayfasındaki her komut bu değişkene erişebilir ve değerini değiştirebilir.
Bir yerel değişken ve bir evrensel değişkenin adları aynı olabilir. Birinin değerinin değişmesi, diğerininkini değiştirmeyecektir. Eğer değişkenleri tanımlamıyorsanız, bir yordam içinde istemeden evrensel değişkenin değerini değiştirebilirsiniz. Örneğin aşağıdaki betik komutları Y adında iki değişken olmasına rağmen 1 değerini döndürür:
<%
Dim Y
Y = 1
Call YerelDegiskeneAktar
Response.Write YSub YerelDegiskeneAktar
Dim Y
Y = 2
End Sub
%>
Aşağıdaki betik komutları ise 2 değerini döndürür, çünkü değişkenler açıkça tanımlanmamıştır. Yordam, Y nin değerine 2 atadığı zaman, betik motoru bunun evrensel değişkene atanmak istediğini varsayar:
<%
Y = 1
Call YerelDegiskeneAktar
Response.Write YSub SetLocalVariable
Y = 2
End Sub
%>
Olabilecek problemleri önlemek için, bütün değişkenleri ayrı ayrı tanımlama alışkanlığı edinin. Bu, özellikle ASP sayfanıza #include ifadesi kullanarak diğer dosyaların içerilmesini sağlarken önemlidir. Dahil edilen betik başka bir dosyada tutulmaktadır, ancak aynı dosyanın bir parçası gibi işlem görmektedir. Değişkenleri tanımlamazsanız, asıl betikte ve dahil edilen betikte farklı değişken isimleri kullanmanız gerektiğini unutabilirsiniz.
Değişkenlere Oturum ya da Uygulama Etkinlik Alanı Atama
Evrensel değişkenler yalnızca bir ASP sayfasında erişilebilirdir. Değişkenin bir sayfanın ötesinde erişilebilir olmasını sağlamak için değişkene bir oturum ya da uygulama etkinlik alanı verin. Oturum etkinlik alanına sahip değişkenler, bir ASP uygulamasında kullanıcı tarafından istenen tüm sayfalarda etkindir. Oturum değişkenleri tek bir kullanıcının bilgilerini tutmak için iyi bir yoldur. Bu bilgiler; kullanıcın kimlik bilgileri ya da tercih bilgileri vs. olabilir. Uygulama değişkenleri belli bir uygulamanın tüm kullanıcılarına ilişkin bilgilerin tutulmasında iyi bir yoldur. Bu bilgiler ise; uygulamaya özel selamlama biçimi, uygulama için gerekli olan ilk değerler vs. olabilir.
ASP, içinde değişken saklayabileceğiniz iki standart nesne sunar: Session (oturum) nesnesi ve Application (uygulama) nesnesi.
Oturum Etkinlik Alanı
Bir değişkene oturum etkinlik alanı vermek için, değişkeni Session nesnesi içinde isimlendirilmiş bir girişte saklayın. Örneğin aşağıdaki komutlar Session nesnesi içinde iki yeni değer saklar:
<%
Session(”Adi”) = “Meltem”
Session(”Soyadi”) = “Ergün”
%>
Session nesnesinden bilgi almak için isimlendirilmiş girişe, çıktı komutu (<%=) ya da Response.Write ile erişin. Aşağıdaki örnek çıkış komutunu kullanarak Session(”Adi”) nin o anki değerini göstermektedir.
Merhaba <%= Session(”Adi”) %>
Session nesnesinde kullanıcı tercihlerini de saklayabilirsiniz ve böylece kullanıcıya hangi sayfayı döndüreceğinize karar verebilirsiniz. Örneğin uygulamanızın ilk sayfasında, kullanıcıya sayfanızın sadece metin içeren bir şeklini isteme şansı verebilir ve bu seçimi takip eden tüm sayfalarda da uygulayabilirsiniz.
<% If Session(”ScreenResolution”) = “Low” Then %>
Bu sayfanın metin sürümüdür.
<% Else %>
Bu sayfanın çoklu ortam sürümüdür.
<% End If %>
Uygulama Etkinlik Alanı
Bir değişkene uygulama etkinlik alanı vermek için değişkeni Application nesnesi içindeki bir isimlendirilmiş girişte saklayın. Örneğin aşagıdaki komut, uygulamaya özel bir selamlamayı Application nesnesi içinde saklamaktadır.
<% Application(”Selamlama”) = “THY ye hoş geldiniz!” %>
Application nesnesinden bilgi alabilmek için, ASP çıkış komutunu (<%=) ya da Response.Write ı kullanarak uygulamadaki sayfaların herhangi birinden isimlendirlmiş girişe erişin. Aşağıdaki örnek, çıkış komutunu (<%=) kullanarak Application(”Selamlama”) nın değerini gösterir:
<%= Application(”Selamlama”)%>
Sabitlerin Kullanılması
Bir sabit, bir sayı ya da dizginin yerini alan bir isimdir. ASP ile birlikte gelen bazı temel bileşenler (ActiveX Veri Nesneleri-ADO gibi) betiklerinizde kullanabileceğiniz sabitler tanımlar. Bir bileşen sabitleri bir bileşen tür kütüphanesi (bir ActiveX bileşenince desteklenen nesneler ve türler hakkında bilgi tutan bir dosya) içinde saklayabilir. Global.asa dosyasında bir tür kütüphanesi oluşturduktan sonra, tanımlanan sabitleri uygulamadaki tüm betiklerde kullanabilirsiniz.
Bir tür kütüphanesi tanımlamak için, uygulamanızın Global.asa dosyasında <METADATA> etiketini kullanın. Örneğin ADO tür kütüphanesini tanımlamak için aşagıdaki ifadeleri kullanın:
<!–METADATA TYPE=”typelib”
FILE=”c:\program files\common files\system\ado\msado15.dll”
–>
Daha sonra, Global.asa dosyasıyla aynı uygulamadaki bütün betiklerde ADO sabitlerini kullanabilirsiniz. Takip eden örnekte, adOpenKeyset ve adLockOptimistic deyimleri ADO sabitleridir:
‘Recordset Nesnesini Yaratın ve Açın
Set RsMusteri = Server.CreateObject(”ADODB.Recordset”)
RsMusteri.ActiveConnection = OBJdbConnection
RsMusteri.CursorType = adOpenKeyset
RsMusteri.LockType = adLockOptimistic
ASP nin önceki sürümlerinde, bazı bileşenlerin tanımladığı sabitlerin bulunduğu dosyaların, bu sabitlerin kullanıldığı her ASP dosyasında dahil edilmesi zorunlu idi. #include ifadesinin sabit tanımlarının dahil edilmesinde kullanılması hala desteklenmektedir, ama tür kütüphanelerinin kulanımı daha kolaydır ve betiklerinizin kolayca günlenmesini sağlar. ASP nin ilerki sürümlerinde bileşenler sabitlerin tanımlandığı dosyaları sağlamayabilir.
Kendi sabitlerinizi tanımlayabilirsiniz. VBScript de Const ifadesini kullanın. JScript de ise var ifadesini kullanın. Kandi sabitlerinizi birden çok ASP sayfasında kullanmak isterseniz, tanımları ayrı bir ASP dosyasına koyun ve bu sabitleri kullanan ASP dosyalarına bu dosyayı da dahil edin.
Not; Bu yazı 04 Aralık 2003 tarihinde http://www.sorucevap.com/uyeler/dersler.asp?maxiturk adresinde tarafımca yayınlanmıştır.
Kolay Gelsin