آموزش ASP عملگرهای VBScript
در این مقاله در مورد عملگرها بحث خواهیم نمود که جزئی از مهم ترین و پرکاربرد ترین مباحث VBScript میباشد. عملگرها به ما اجازه می دهند که با داده ها کار کنیم و آنها را ترکیب کنیم تغییر دهیم و یا جایگزین کنیم. ۵ کلاس اصلی از عملگر ها وجود دارند که ما در مورد آنها بحث خواهیم کرد. اولین نوع آنها عملگر انتساب(Assignment) میباشد که اکنون آن را ملاحظه خواهیم نمود:
● عملگر انتساب
ما در مورد متغیرها بحث کردیم و توضیح دادیم که داده ها در آنها ذخیره می گردند. اما درباره این که چگونه داده ها در متغیر ها ذخیره می شوند توضیحی داده نشد.عادی ترین راه برای ذخیره داده های متغیرها استفاده از عملگر انتساب می باشد. عملگر انتساب در VBScript علامت مساوی (=) می باشد. عملگر انتساب هر چیزی که در سمت راست آن قرار بگیرد در متغیری که در سمت چپ آن قرار می گیرد ذخیره می کند.
برای مثال کدهای زیر را در نظر بگیرید:
<%
Dim MyVariable
MyVariable = ۳
MyVariable = ۵
%>
اگر شما قبلا برنامه نویسی نکرده باشید ممکن است از این که متغیر MyVariable در یک لحظه هم مقدار ۳ و هم مقدار ۵ را گرفته است متعجب شده باشید. باید دقت نمایید که عملگر انتساب را با مشابه آن در مبحث ریاضیات اشتباه نگیرید. جمله سوم می گوید که متغیر MyVariable برابر ۵ می باشد. این جمله در داخل متغیر MyVariable مقدار ۵ را ذخیره می کند.
به منظور یک دوره کوتاه ما خط به خط این کدها را مورد بررسی قرار می دهیم.
دردومین خط همان طور که قبلا توضیح داده شد یک متغیر تعریف شده است. در این هنگام یک مقدار Empty در داخل متغیر MyVariable ذخیره می گردد. در خط بعد مقدار ۳ به متغیر MyVariable تخصیص داده می شود. بنابراین در داخل جعبه ای که دارای بر چسب MyVariable میباشد هم اکنون مقدار ۳ وجود دارد. در انتها مقدار ۵ به متغیرMyVariable تخصیص داده می شود. مقدار ۳ که وجود داشت اکنون از بین می رود!
به این نکته در هنگام برنامه نویسی دقت کنید که در داخل متغیر ها هرگز مقادیر جدیدی را جایگزین ننمایید تا زمانی که اطمینان حاصل کنید کارتان با مقدار قبلی تمام شده است. اگر مسلم شد که به جایگزینی یک مقدار برای استفاده بعدی نیاز دارید ممکن است یک متغیر دومی را ایجاد کنید و آن را به شکل زیر نگهداری نمایید:
<%
Dim MyVariableX, MyVariableY
MyVariableX = ۳
MyVariableY = MyVariableX
MyVariableX = ۵
%>
در اینجا خط دوم با دو متغیر تعریف شده است MyVariableX و MyVariableY. در ابتدا در هر دو مقدار Empty قرار داده می شود.
در خط بعد مقدار ۳ در داخل MyVariableX قرار داده می شود. مقدار دهی تنها با مقادیر صریح مثل ۳ یا ۵ انجام نمی گیرد بلکه با متغیر ها نیز صورت می گیرد. در نهایت در هر دو متغیر MyVariableY و MyVariableX مقدار ۳ ذخیره می گردد.
سرانجام در داخل MyVariableX مقدار ۵ قرار داده می شود. این مساله بر روی متغیر MyVariableY تاثیری ندارد. خط ۳ هر چه که در داخل MyVariableX وجود دارد به داخل MyVariableY کپی می کند اما این کار هیچ نوع ارتباط دائمی بین دو متغیر MyVariableX و MyVariableY ایجاد نمی کند با این کار MyVariableX با مقدار جدید مورد استفاده قرار می گیرد. اما اگر شما هنوز به مقدار قبلی نیاز داشته باشید از طریق MyVariableY به آن دسترسی خواهید داشت.
اکنون به آخرین نسخه ازین کدها نگاه کنید:
<%
Dim ivar
ivar = ۳
۵ = ivar
%>
آیا فکر می کنید این کد ها کار میکند؟ (اولین پاراگراف مربوط به عملگرهای انتساب را در صورتی که اطمینان ندارید دوباره بخوانید.)
جواب منفی است. این کدها معتبر نمی باشد. دو خط اول قابل انتظار می باشد اما خط سوم بی معنی است. عملگر انتساب هر چه که در سمت راست آن قرار دارد در داخل متغیر سمت چپ کپی می کند.در این نمونه عدد ۵ یک متغیر نیست و در سمت چپ قرار دارد. عدد ۵ نمیتواند به عنوان نام یک متغیر به کار رود زیرا نام متغیر ها باید با یک حرف آغاز شود.
ما از نوع integer در این مثال ها استفاده نموده ایم اما می توانستیم از انواع دیگر استفاده کنیم. عملگر انتساب با نوع های Booleans, Strings, doubles, singles به خوبی کار می کند:
StrName = "X"
Bol_The_Assignment_operator_Is_Powrful = True
Dtjills_Birthday = #۰۳/۰۶/۱۹۴۶#
نکته: محصور کردن داده با علامت # داده را به سه قسمت ۳ و ۶ و ۱۹۴۶ تقسیم می کند.
ممکن است متوجه شده باشید که در لیست قبل از عملگر انتساب استفاده شده است. لیست زیر یک نسخه تغییر یافته از این کد ها می باشد که عملگر انتساب را با کمی تغییر نشان میدهد.
نام فایل را AssignmentDemo.asp بنامید:
<% @ Language="VBScript" %>
<% Option Explict
Dim strName, iAge
%>
<html>
<body>
<%
Response.Write("Before assigning a value, strName has value ")
Response.Write(strName)
%>
<br>
<%
strName= "James"
iAge = ۲۱
Response.Write( "Now strName has value ")
Response.Write(strName)