ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> php-dev
php-dev
#50110 [Opn]: Static (File Scope) Variables
by N8grndr1087 At Optonline Dot Net other posts by this author
Nov 7 2009 10:21AM messages near this date
#50110 [NEW]: Static (File Scope) Variables | #50109 [NEW]: Low memory after installing mysql mod php5
ID:               50110
 User updated by:  n8grndr1087 at optonline dot net
 Reported By:      n8grndr1087 at optonline dot net
 Status:           Open
 Bug Type:         Feature/Change Request
 Operating System: Unix
 PHP Version:      5.2.11
 New Comment:

This feature would also be useful for static (file scope) functions as
well.


Previous Comments:
------------------------------------------------------------------------

[2009-11-07 05:07:19] n8grndr1087 at optonline dot net

Description:
------------
Global variables should be able to be declared 'static'.
Static globals, like in C, would only be accessible from the current
file's scope. This would be a good way to protect internal variables
used behind the scenes in a particular file. 

If there is any effective way to protect variables that I overlooked,
outside of PHP classes, let me know. I understand that the possibility
of this depends on how the include/file processing mechanism works.

Reproduce code:
---------------
myvar.inc: 
<?php
static $myvar = 1;
function get_myvar()
{
  global $myvar; // Since its not a true global, this may be different
  return $myvar;
}
function set_myvar($v)
{
  global $myvar;
  $myvar = $v;
}
?> 

test.php: 
<?php
include('myvar.inc');
echo get_myvar().'<br/> ';
set_myvar(0);
$myvar = 10000;
echo get_myvar();
?> 

Expected result:
----------------
1
0

Actual result:
--------------
1
10000


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=50110&edit=1
Thread:
N8grndr1087 At Optonline Dot Net
N8grndr1087 At Optonline Dot Net

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved