# Accessing global variable from a function

**URL:** <https://www.ruby-forum.com/t/accessing-global-variable-from-a-function/98323>\
**Category:** Ruby\
**Created:** [January 28, 2006, 10:19pm UTC](https://www.ruby-forum.com/t/accessing-global-variable-from-a-function/98323 "2006-01-28T22:19:33Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![vitalyb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/90db22/32.png) [@vitalyb](https://www.ruby-forum.com/u/vitalyb)\
**Post date:** [January 28, 2006, 10:19pm UTC](https://www.ruby-forum.com/t/accessing-global-variable-from-a-function/98323/1 "2006-01-28T22:19:33Z")

</div>

I’d like to access a global variable from within a function, without  
passing it as paramater. How do I do it? e.g

def func  
puts i  
end

i = 5  
func

In PHP, for example, I could use the “global” keyword in the function.

---

<div class="post-metadata">

**Author:** ![vitalyb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/90db22/32.png) [@vitalyb](https://www.ruby-forum.com/u/vitalyb)\
**Post date:** [January 28, 2006, 10:57pm UTC](https://www.ruby-forum.com/t/accessing-global-variable-from-a-function/98323/2 "2006-01-28T22:57:45Z")

</div>

Vitaly Belman wrote:

> I’d like to access a global variable from within a function, without  
> passing it as paramater. How do I do it? e.g

You want to use a global variable, like so:

def func  
puts $i  
end

$i = 5  
func

The “$” tells Ruby it’s global.

> In PHP, for example, I could use the “global” keyword in the function.

Yeah… one of the most distracting “features” of PHP _shrugs_.

Sebastian

---

<div class="post-metadata">

**Author:** ![vitalyb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/90db22/32.png) [@vitalyb](https://www.ruby-forum.com/u/vitalyb)\
**Post date:** [January 28, 2006, 11:10pm UTC](https://www.ruby-forum.com/t/accessing-global-variable-from-a-function/98323/3 "2006-01-28T23:10:22Z")

</div>

Vitaly Belman wrote:

> I’d like to access a global variable from within a function, without  
> passing it as paramater. How do I do it?  
> Global variables start with a “$” so just write

def func  
puts $i  
end

$i = 5  
func
