Global variable
કોમ્પ્યુટર પ્રોગ્રામિંગમાં, વૈશ્વિક ચલ એ વૈશ્વિક અવકાશ સાથે ચલ છે, જેનો અર્થ છે કે તે સમગ્ર પ્રોગ્રામમાં દૃશ્યમાન (તેથી સુલભ) છે, જ્યાં સુધી છાંયો ન હોય. તમામ વૈશ્વિક ચલોનો સમૂહ વૈશ્વિક પર્યાવરણ અથવા વૈશ્વિક સ્થિતિ તરીકે ઓળખાય છે. સંકલિત ભાષાઓમાં, વૈશ્વિક ચલ સામાન્ય રીતે સ્થિર ચલ હોય છે, જેની હદ (જીવનકાળ) એ કાર્યક્રમનો સંપૂર્ણ રનટાઇમ હોય છે, જોકે અર્થઘટન કરાયેલી ભાષાઓમાં (કમાન્ડ-લાઇન દુભાષિયાઓ સહિત), વૈશ્વિક ચલ સામાન્ય રીતે જ્યારે જાહેર કરવામાં આવે ત્યારે ગતિશીલ રીતે ફાળવવામાં આવે છે, કારણ કે તેઓ અગાઉથી જાણીતા નથી. કેટલીક ભાષાઓમાં, તમામ ચલ વૈશ્વિક અથવા મૂળભૂત રીતે વૈશ્વિક હોય છે, જ્યારે મોટાભાગની આધુનિક ભાષાઓમાં ચલોનો મર્યાદિત અવકાશ હોય છે, સામાન્ય રીતે શાબ્દિક અવકાશ હોય છે, જો કે વૈશ્વિક ચલ ઘણીવાર કાર્યક્રમના ટોચના સ્તરે ચલ જાહેર કરીને ઉપલબ્ધ હોય છે. જોકે, અન્ય ભાષાઓમાં, વૈશ્વિક ચલ અસ્તિત્વમાં નથી; આ સામાન્ય રીતે મોડ્યુલર પ્રોગ્રામિંગ ભાષાઓ છે જે મોડ્યુલ માળખાને લાગુ કરે છે, અથવા વર્ગ-આધારિત ઓબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ ભાષાઓ છે જે વર્ગ માળખાને લાગુ કરે છે. વૈશ્વિક ચલ સાથે ક્રિયાપ્રતિક્રિયા પદ્ધતિઓનો ઉપયોગ વૈશ્વિક પર્યાવરણ તરીકે ઓળખાય છે (વૈશ્વિક સ્થિતિ પણ જુઓ). વૈશ્વિક પર્યાવરણનો દાખલો સ્થાનિક પર્યાવરણનો દાખલો સાથે વિપરિત છે, જ્યાં તમામ ચલ કોઈ વહેંચાયેલ સ્મૃતિ વિના સ્થાનિક હોય છે (અને તેથી તમામ ક્રિયાપ્રતિક્રિયાઓને સંદેશ પસાર કરવા માટે ફરીથી સંચાલિત કરી શકાય છે). વૈશ્વિક ચલોનો ઉપયોગ કોડના વિભાગો વચ્ચે માહિતી પસાર કરવા માટે વ્યાપકપણે થાય છે જે સમવર્તી થ્રેડો અને સિગ્નલ હેન્ડલર્સ જેવા કોલર/કૅલી સંબંધને શેર કરતા નથી. ભાષાઓ (સી સહિત) જ્યાં દરેક ફાઇલ ગર્ભિત નેમસ્પેસને વ્યાખ્યાયિત કરે છે તે વૈશ્વિક નેમસ્પેસ ધરાવતી ભાષાઓમાં જોવા મળતી મોટાભાગની સમસ્યાઓને દૂર કરે છે, જોકે કેટલીક સમસ્યાઓ યોગ્ય રીતે સમાવિષ્ટ કર્યા વિના ચાલુ રહી શકે છે. યોગ્ય લોકિંગ વિના (જેમ કે મ્યુટેક્સ સાથે), વૈશ્વિક ચલોનો ઉપયોગ કરતો કોડ સંરક્ષિત મેમરીમાં ફક્ત વાંચવા માટેના મૂલ્યો સિવાય થ્રેડ-સલામત રહેશે નહીં. એન્વાયર્નમેન્ટ વેરિયેબલ્સ એન્વાયર્નમેન્ટ વેરિયેબલ્સ એ કેટલીક ઓપરેટિંગ સિસ્ટમ્સ દ્વારા પૂરી પાડવામાં આવતી સુવિધા છે. ઓએસના કોષની અંદર (યુનિક્સમાં કેએસએચ, લિનક્સમાં બેશ, ડોસમાં COMMAND.COM અને વિન્ડોઝમાં CMD.EXE) તે એક પ્રકારનો ચલ છેઃ દાખલા તરીકે, યુનિક્સ અને સંબંધિત સિસ્ટમોમાં જ્યારે નિકાસ મુખ્ય શબ્દનો ઉપયોગ કરવામાં આવે ત્યારે સામાન્ય ચલ પર્યાવરણ ચલ બની જાય છે. શેલો સિવાયના પ્રોગ્રામ કોડને ગેટએનવી () અને સેટએનવી () જેવા એપીઆઈ કૉલ્સ દ્વારા એક્સેસ કરવો પડે છે. તેઓ જે પ્રક્રિયામાં ગોઠવવામાં આવ્યા હતા તે સ્થાનિક છે. તેનો અર્થ એ કે જો આપણે બે ટર્મિનલ વિન્ડો ખોલીએ (બે જુદી જુદી પ્રક્રિયાઓ ચાલી રહી છે) અને એક વિંડોમાં પર્યાવરણ ચલનું મૂલ્ય બદલીએ, તો તે ફેરફાર અન્ય વિન્ડો દ્વારા જોવામાં આવશે નહીં. જ્યારે બાળ પ્રક્રિયા બનાવવામાં આવે છે, ત્યારે તે તમામ પર્યાવરણીય ચલ અને તેમના મૂલ્યોને પિતૃ પ્રક્રિયામાંથી વારસામાં મેળવે છે. સામાન્ય રીતે, જ્યારે કોઈ પ્રોગ્રામ બીજા પ્રોગ્રામને કૉલ કરે છે, ત્યારે તે પહેલા ફોર્ક કરીને બાળ પ્રક્રિયા બનાવે છે, પછી બાળક જરૂરિયાત મુજબ પર્યાવરણને વ્યવસ્થિત કરે છે અને અંતે બાળક પોતાને કૉલ કરવા માટેના પ્રોગ્રામ સાથે બદલે છે. તેથી બાળ પ્રક્રિયાઓ તેમના સાથીદારો સાથે વાતચીત કરવા માટે પર્યાવરણીય ચલોનો ઉપયોગ કરી શકતી નથી, અંતરની સમસ્યા પરની ક્રિયાને ટાળી શકે છે. વૈશ્વિક-માત્ર અને વૈશ્વિક-દ્વારા-મૂળભૂત સંખ્યાબંધ બિન-સંરચિત ભાષાઓ, જેમ કે (પ્રારંભિક આવૃત્તિઓ) બેઝિક, કોબોલ અને ફોરટ્રાન I (1956) માત્ર વૈશ્વિક ચલ પ્રદાન કરે છે. ફોરટ્રાન II (1958) એ સ્થાનિક ચલ સાથે સબરૂટિન અને વૈશ્વિક ચલોનો ઉપયોગ કરવા માટે સામાન્ય મુખ્ય શબ્દ રજૂ કર્યો. ફોરટ્રાનમાં કોમનનો ઉપયોગ ફોરટ્રાન 77માં ચાલુ રહ્યો અને પીએલ/એસક્યુએલ જેવી પછીની ભાષાઓને પ્રભાવિત કરી. ગ્લોબલ્સ માટે સામાન્ય જૂથો તરીકે ઓળખાતા જૂથો કંઈક અંશે સંરચિત નેમસ્પેસ જેવા વર્તે છે. ફોર્થ, લુઆ, પર્લ અને મોટાભાગના શેલોમાં ચલ પણ મૂળભૂત રીતે વૈશ્વિક છે. સી અને સી + + ભાષા દ્વારા સી ભાષામાં વૈશ્વિક મુખ્ય શબ્દ નથી. જો કે, કાર્યની બહાર જાહેર કરાયેલા ચલમાં "ફાઇલ અવકાશ" હોય છે, જેનો અર્થ થાય છે કે તેઓ ફાઇલની અંદર દેખાય છે. ફાઇલ અવકાશ સાથે જાહેર કરાયેલા ચલ તેમની ઘોષણા અને સંકલન એકમ (. c ફાઇલ) ના અંતની વચ્ચે દેખાય છે (જ્યાં સુધી નજીકના અવકાશમાં સમાન નામના પદાર્થ દ્વારા છાયામાં ન હોય, જેમ કે સ્થાનિક ચલ); અને તેઓ પરોક્ષ રીતે બાહ્ય જોડાણ ધરાવે છે અને આમ માત્ર તેમની ઘોષણાઓ ધરાવતી. c ફાઇલ અથવા સંકલન એકમ જ નહીં પણ સંપૂર્ણ પ્રોગ્રામ રચવા માટે જોડાયેલા દરેક અન્ય સંકલન એકમ માટે પણ દૃશ્યમાન હોય છે. જોકે, અન્ય ફાઇલોમાં આવા ચલનો ઉપયોગ કરવા માટે બાહ્ય જોડાણ પૂરતું નથીઃ સંકલન એકમ માટે આવા વૈશ્વિક ચલને યોગ્ય રીતે ઍક્સેસ કરવા માટે, તેને તેના પ્રકારને જાણવાની જરૂર પડશે. બાહ્ય મુખ્ય શબ્દનો ઉપયોગ કરીને દરેક ફાઇલમાં ચલ જાહેર કરીને આ પરિપૂર્ણ થાય છે. (તે દરેક ફાઇલમાં જાહેર કરવામાં આવશે પરંતુ માત્ર એકમાં વ્યાખ્યાયિત કરી શકાય છે.) આવી બાહ્ય ઘોષણાઓ ઘણીવાર વહેંચાયેલ હેડર ફાઇલમાં મૂકવામાં આવે છે, કારણ કે પ્રોજેક્ટમાં તમામ. c ફાઇલો માટે ઓછામાં ઓછી એક. h ફાઇલનો સમાવેશ કરવો એ સામાન્ય પ્રથા છેઃ પ્રમાણભૂત હેડર ફાઇલ errno.h એક ઉદાહરણ છે, જે પ્રોજેક્ટમાં તમામ મોડ્યુલો માટે ભૂલ ચલને સુલભ બનાવે છે. જ્યાં આ ગ્લોબલ એક્સેસ મિકેનિઝમને સમસ્યારૂપ ગણવામાં આવે છે, ત્યાં તેને સ્ટેટિક કીવર્ડ્સનો ઉપયોગ કરીને નિષ્ક્રિય કરી શકાય છે જે વેરિયેબલને ફાઇલના અવકાશ સુધી મર્યાદિત કરે છે, અને સંકલન (અથવા લિંકિંગ) ભૂલ વધારવા માટે તેને બાહ્ય સાથે આયાત કરવાના પ્રયાસોનું કારણ બનશે. C માં "વૈશ્વિક" ચલનું ઉદાહરણ છેઃ #include <stdio.h>// આ ફાઇલ-અવકાશ ચલ (આંતરિક જોડાણ સાથે) છે, જે ફક્ત// આ સંકલન એકમમાં જ દેખાય છે. સ્થિર પૂર્ણાંક વહેંચાયેલ = 3;// આમાં બાહ્ય જોડાણ છે (આ સંકલન એકમ સુધી મર્યાદિત નથી). બાહ્ય int ઓવર _ શેર્ડ;// આંતરિક જોડાણ પણ. int ઓવર _ શેર્ડ _ ટૂ = 2; સ્થિર રદબાતલ ચેન્જશેર્ડ () {// ફંક્શનમાં ફાઇલ-સ્કોપ ચલનો સંદર્ભ. વહેંચાયેલ = 5;} સ્થિર શૂન્ય લોકલશેડો () {// સ્થાનિક ચલ જે સમાન નામના વૈશ્વિકને છુપાવશે. int વહેંચાયેલ;// આ માત્ર સ્થાનિક ચલને અસર કરશે અને તે જ નામના// ફાઇલ-સ્કોપ ચલ પર તેની કોઈ અસર થશે નહીં. વહેંચાયેલ = 1000;} સ્થિર રદબાતલ પરમશાડો (પૂર્ણાંક વહેંચાયેલ) {// આ માત્ર પરિમાણને અસર કરશે અને તે જ નામના ફાઇલ-//અવકાશ ચલ પર તેની કોઈ અસર થશે નહીં. વહેંચાયેલ =-વહેંચાયેલ;} પૂર્ણાંક મુખ્ય () {// ફાઇલ-અવકાશ ચલનો સંદર્ભ. પ્રિન્ટએફ ("% d\n", વહેંચાયેલ); ચેન્જશેર્ડ (); પ્રિન્ટએફ ("% d\n", વહેંચાયેલ); લોકલશેડો (); પ્રિન્ટએફ ("% d\n", વહેંચાયેલ); પરમશેડો (1); પ્રિન્ટએફ ("% d\n", વહેંચાયેલ); રીટર્ન 0;} કારણ કે ચલ બાહ્ય છે, તેને મુખ્ય સિવાયના કાર્યમાં વાપરવા માટે તેને પરિમાણ તરીકે પસાર કરવાની જરૂર નથી. તે મોડ્યુલના દરેક કાર્ય સાથે સંબંધિત છે. આઉટપુટ હશેઃ 3 5 5 5 જાવા કેટલીક ભાષાઓમાં, જેમ કે જાવા, વૈશ્વિક ચલ નથી. જાવામાં, તમામ ચલ કે જે સ્થાનિક ચલ નથી તે વર્ગના ક્ષેત્રો છે. તેથી બધા ચલ વર્ગ અથવા પદ્ધતિના અવકાશમાં છે. જાવામાં, સ્થિર ક્ષેત્રો (જેને વર્ગ ચલ તરીકે પણ ઓળખવામાં આવે છે) વર્ગના કોઈપણ ઉદાહરણોથી સ્વતંત્ર રીતે અસ્તિત્વ ધરાવે છે અને એક નકલ તમામ ઉદાહરણોમાં વહેંચવામાં આવે છે; તેથી જાહેર સ્થિર ક્ષેત્રોનો ઉપયોગ અન્ય ભાષાઓમાં વૈશ્વિક ચલ જેવા ઘણા સમાન હેતુઓ માટે કરવામાં આવે છે કારણ કે તેમની સમાન "વહેંચણી" વર્તણૂકઃ સાર્વજનિક વર્ગ વૈશ્વિક (સાર્વજનિક સ્થિર) PHP વૈશ્વિક મુખ્ય શબ્દ ધરાવે છે અને વૈશ્વિક ચલોનો ઉપયોગ કરવાની સંખ્યાબંધ અસામાન્ય રીતો ધરાવે છે. વિધેયોની બહાર જાહેર કરાયેલા ચલમાં ફાઇલનો અવકાશ હોય છે (જે મોટાભાગના હેતુઓ માટે વ્યાપક અવકાશ હોય છે). જો કે, જ્યાં સુધી વૈશ્વિક મુખ્ય શબ્દ સાથે આયાત કરવામાં ન આવે ત્યાં સુધી તેઓ કાર્યોની અંદર સુલભ નથી (એટલે કે, મુખ્ય શબ્દ વૈશ્વિક ચલ સુધી પહોંચે છે, તે તેમને જાહેર કરતું નથી). જો કે, કેટલાક પૂર્વવ્યાખ્યાયિત ચલ, જેને સુપરગ્લોબલ્સ તરીકે ઓળખવામાં આવે છે, તે હંમેશા સુલભ હોય છે. તે બધા એરે છે. એક સામાન્ય હેતુ $GLOBALS સુપરગ્લોબલ છે, જેમાં કાર્ય અવકાશમાંથી વ્યાખ્યાયિત તમામ ચલોનો સમાવેશ થાય છે. તેના ઘટકોમાં ફેરફારો મૂળ ચલમાં ફેરફાર કરે છે, અને ઉમેરાઓ નવા ચલ બનાવે છે. સુપરગ્લોબલ્સ $_ POST અને $_ GET નો વેબ પ્રોગ્રામિંગમાં વ્યાપકપણે ઉપયોગ થાય છે. પાયથોન અને મેટલેબમાં અન્ય ભાષાઓને વૈશ્વિક ચલ તરીકે વૈશ્વિક મુખ્ય શબ્દ સાથે ગમે ત્યાં જાહેર કરી શકાય છે. રૂબીના વૈશ્વિક ચલને '$' સિગિલ દ્વારા અલગ પાડવામાં આવે છે. સંખ્યાબંધ પૂર્વવ્યાખ્યાયિત વૈશ્વિક અસ્તિત્વ ધરાવે છે, ઉદાહરણ તરીકે $$એ વર્તમાન પ્રક્રિયા ID છે. સ્થાનિક ચલ બિન-સ્થાનિક ચલ સિંગલટન પેટર્ન ચલ સ્થિર ચલ બાહ્ય ચલ સંદર્ભો ચલ (કોમ્પ્યુટર વિજ્ઞાન) ડીઃ પરિવર્તનીય (પ્રોગ્રામીયરંગ) #Variablen ઇનર બ્લોકસ્ટ્રક્ટુરમાં પણ જુઓ.