UYARI: İnternet bir özgürlük ortamı, evet fakat her site gibi bu site de yayınına devam edebilmesi için reklam almak zorunda, ama büyük ihtimalle siz de reklam görmekten sıkıldığınız için AdBlock veya benzeri bir programı kurdunuz. Bu durum anlaşılır bir durum birçok kişi bunu yapıyor, fakat bu yapıldığı zaman da siteler masraflarını karşılayamadıkları için kapanmak zorunda kalıyor. Sitemiz AdBlock kullanan birini "Sen siteye girme" kardeşim diye engellemiyor çünkü özgürlük bunu gerektiriyor, siteyi seven zaten AdBlock'u kapatıp desteğini gösterir buna gerek yok, bu yüzden sitede özgürce dolaşacak sadece her dolaştığınız sayfalarda bu uyarı bulunacaktır....
Logo
mobilmenu
RenkliKodlar
ASP de Function ve Sub kullanımı

ASP de Function ve Sub kullanımı


(Function ve Sub) Fonksiyonlar ve prosedürler, programlama kodunun yeniden kullanılabilir modüllerini oluşturmak için kullanılırlar, böylece ASP kodları üstten alta doğru yürütüldüğünden alt satırlardaki kodlardan bu modüllere erişip modül içinde sağlamasını yaptığımız işlemleri bulunduğumuz satırda gösterme ve istediğimiz kadar tekrarlama imkanımız olur.
ASP'de Fonksiyon ve Sub'ları Visual Basic'te yazdığınıza benzer şekilde yazabilirsiniz. Kodunuzu modüler hale getirmek ve daha iyi yeniden kullanım sağlamak için işlevleri kullanmak iyi bir programlama uygulamasıdır.

ASP motoru bu kodlarımızı Visual Basic gibi yorumlasın diye sayfa başında <html> etiketinin de üstü (ilk satır) olacak şekilde <%@ LANGUAGE="VBSCRIPT" %> yazılır bu kod sayfa içinde tekrar etmemeli ve ASP motoru tarafından okunacak kodların en başında olmalıdır.

Function ve Sub prosedürü farkları
  • Sub (Bir değer döndürmez sadece yorumlanan sonucu çağrıldığı yere yansıtır, Sub anahtarıyla başlar ve End Sub ile biter, çağrıldığı konumdan parametreler alabilir)
  • Function (Çağrıldığı konumdan parametreler alabilir, gönderilen parametreleri işleyebilir sonucu değer olarak dödürür, Function anahtarıyla başlar End Function ile biter)

Sub prosedürünün kullanımı


<%
Sub kacyasinda(a,b)
Response.Write(a-b)
End Sub
%>Kopyala
Sayfamızın üstlerinde bu şekilde bir sub oluşturduk şimdi alt satırlarda gerektiğinde buna nasıl ulaşırız ona bakalım
Bir Sub'a ulaşmanın 2 yolu var Call deyimini kullanarak yada sub adını doğrudan yazarak Call deyimi kullanılırsa () parantez kullanması zorunludur ayrıca gönderilen parametre türü sayısal değilse parametre değeri "" tırnakları içine alınmalıdır Call kacyasinda("Merhaba","Mehmet") gibi, Aşağıdaki örnekte sayısal işlem olduğu için " kullanılmamıştır.
<% kacyasinda 2016,1975 %> Yaşında.
<br>
<% Call kacyasinda(2016,1975) %> Yaşında.Kopyala
Her iki seçenek te 1975 yılında doğan birinin 2016 da kaç yaşında olduğunu sayfaya yazdırır.

Eger parametre göderilmeyecekse Sub oluşturulurken veya erişim sırasında () parantez kullanması zorunlu değildir kullanılsa da sorun olmaz.
<%
Sub yasikac
Response.Write("41")
End Sub
%>Kopyala
Bu Sub'a ulaşmak için aşağıdaki biçimleri kullanabiliriz.
<% Call yasikac %> Yaşında.
<br>
<% yasikac %> Yaşında.Kopyala
Sub prosedürlerinde değişkenler kullanabiliriz fakat yorumlanmaları Sub içinde yapılır daha çok projelerimizin görünümü ile ilgili sürekli tekrarlaması gereken html kodları için kullanımı uygundur

Function kullanımı


<%
Function kacyasinda(a, b)
sonucu_ver = (a - b)
kacyasinda = sonucu_ver
End Function
%>Kopyala
Function'un Sub'tan farkı yok gibi görünse de çok farklı aslında buraya gönderdiğimiz parametreler değişken olarak geri döner böylece verilerimizi veritabanı na kaydedebilir başka işlemlerden de geçirebiliriz bir değer döndürmesi için Function içindeki değerin dönmesi gerektiği yerde Function adında bir değişken oluşturulur ve dönmesini istediğimiz değer buna yazdırılır örnekte 4. satır kacyasinda = sonucu_ver .
Functiona aşağıdaki şekilde ulaşırız.
Örnek 1: 1975 yılında doğan biri 2016 da kaç yaşında?<br>
<%
Response.Write kacyasinda(2016,1975)
%>
<br><br>
Örnek 2: dönen sonuca +5 ekleyince kaç olur?<br>
<%
Response.Write kacyasinda(2016,1975)+5
%>
<br><br>
Örnek 2: dönen sonuç 50 den kuçükmü?<br>
<%
If kacyasinda(2016,1975) < 50 Then
Response.Write("Daha çok genç!")
Else
Response.Write("Yaşlanmiş mı acep!")
End if
%>Kopyala

3 farklı örnekle Functiona nasıl ulaşabiliriz açıklamaya çalıştım Sub'ta olduğu gibi Functionu da parametre göndermeden ve parametre olmadığı için () tırnaklar olmadan da kullanabiliriz ozaman Sub ile aynı olmazmı diye düşünebilirsiniz hayır olmaz çünkü bu şekildeyken bile dönen değeri tekrar farkli işlemlerden geçirebiliyoruz aşağıdaki örneklerde görüldüğü gibi.
<%
Function aspnedir()
sonucu_ver = "ASP dinamik Web sayfaları oluşturmak için kullanılan Microsoft Windows tabanlı Sunucuda çalışan bir program dilidir."
aspnedir = sonucu_ver
End Function
Response.Write aspnedir()
%>
<br> 
<%
Function sayisal
sonucu_ver = 50
sayisal = sonucu_ver
End Function
Response.Write sayisal+5
%>Kopyala

Yeri gelmişken biraz farklı birşeyden de bahsedelim Functionları <% %> asp kodları arasına yazdığımız gibi javascript yazarmış gibi de yazabiliriz asp bu kodları da server tarafında yorumlayacaktır sayfa kaynak kodlarını incelediğinizde böyle bir javascript kodu bulunmadığını göreceksiniz, javascript'e benzer bu yazılım şekli pek kulanılmaz ben yine de biraz deyineyim, javascript etiketini bu <script language="javascript" runat="server"> şekilde değişmeniz yeterli.
<%@ language="VBSCRIPT"%>
<script language="javascript" runat="server">
function deneme(a,b) {
return a*b
}
</script>
12 x 2 kaç eder<br>
<%=deneme(12,2) %>Kopyala

Gördüğünüz gibi  kodları javascript etiketi içine yazdık ve javascriptte olduğu gibi burda da  { } köşeli parantez kullandık ayrıca yine aynen javascriptteki gibi return ile sonucu geri döndürdük artık istediğimiz zaman asp kodlarımızda sayfaya yazdırırken <% %> arası kullanabiliriz.

Bu makalede ASP ile Function ve Sub kullanımı anlatmaya çalıştım faydalı olması dileğiyle..

Mehmet İbrahim


ASP de Function ve Sub kullanımı Yorumları:


Bu yazıya toplam 2 yorum yapılmış.
Toplam 1 sayfa yorum var, Gösterimde olan yorum sayfası 1
23 Eylül 2018, 11:57
oselsan yazdı:
verdiğiniz bilgi için teşekkür ederim.
27 Kasım 2020, 10:32
5 yazdı:
  • 1



Bağlan

Yorumunuza cevap yazilmasi durumunda bildiri almak istiyor musunuz?