question on avoiding abuse of global

This is a discussion on question on avoiding abuse of global within the PHP Language forums, part of the PHP Programming Forums category; hi, I have some constants defined in a php script say config.php. I want to use the variables there ...


Go Back   Usenet Forums > PHP Programming Forums > PHP Language

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 06-22-2008
lazy
 
Posts: n/a
Default question on avoiding abuse of global

hi,
I have some constants defined in a php script say config.php.
I want to use the variables there defined in other scripts.
couple of questions regd that:

1. Is there an alternative to including config.php and declaring the
variables that will be used as global. This seems very inefficient.

2.Moreover these variables are constants, is there a way to make the
variables unmodifiable in config.php so that scripts that use them ,
dont overrite them. Is there a php construct which can delare a
variable as constant.
Reply With Quote
  #2 (permalink)  
Old 06-22-2008
Jerry Stuckle
 
Posts: n/a
Default Re: question on avoiding abuse of global

lazy wrote:
> hi,
> I have some constants defined in a php script say config.php.
> I want to use the variables there defined in other scripts.
> couple of questions regd that:
>
> 1. Is there an alternative to including config.php and declaring the
> variables that will be used as global. This seems very inefficient.
>


No. For your code to know about them, you must define them somewhere.
A file which is included in others is as good as any - and quite
efficient. But efficiency shouldn't be your problem right now anyway.
Get it working; if you have performance problems. find the cause of your
performance problem and fix it. Including a configuration file will not
be the problem.

> 2.Moreover these variables are constants, is there a way to make the
> variables unmodifiable in config.php so that scripts that use them ,
> dont overrite them. Is there a php construct which can delare a
> variable as constant.
>


Check out the define().

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Reply With Quote
  #3 (permalink)  
Old 06-22-2008
sheldonlg
 
Posts: n/a
Default Re: question on avoiding abuse of global

Jerry Stuckle wrote:
> lazy wrote:
>> hi,
>> I have some constants defined in a php script say config.php.
>> I want to use the variables there defined in other scripts.
>> couple of questions regd that:
>>
>> 1. Is there an alternative to including config.php and declaring the
>> variables that will be used as global. This seems very inefficient.
>>

>
> No. For your code to know about them, you must define them somewhere. A
> file which is included in others is as good as any - and quite
> efficient. But efficiency shouldn't be your problem right now anyway.
> Get it working; if you have performance problems. find the cause of your
> performance problem and fix it. Including a configuration file will not
> be the problem.


The OP said "alternative to including config.php". What he can do is to
declare some session variables in config.php, and then use them
elsewhere without including config.php. So, the answer to that part is
"yes".

>
>> 2.Moreover these variables are constants, is there a way to make the
>> variables unmodifiable in config.php so that scripts that use them ,
>> dont overrite them. Is there a php construct which can delare a
>> variable as constant.
>>

>
> Check out the define().
>

Reply With Quote
  #4 (permalink)  
Old 06-22-2008
Jerry Stuckle
 
Posts: n/a
Default Re: question on avoiding abuse of global

sheldonlg wrote:
> Jerry Stuckle wrote:
>> lazy wrote:
>>> hi,
>>> I have some constants defined in a php script say config.php.
>>> I want to use the variables there defined in other scripts.
>>> couple of questions regd that:
>>>
>>> 1. Is there an alternative to including config.php and declaring the
>>> variables that will be used as global. This seems very inefficient.
>>>

>>
>> No. For your code to know about them, you must define them somewhere.
>> A file which is included in others is as good as any - and quite
>> efficient. But efficiency shouldn't be your problem right now anyway.
>> Get it working; if you have performance problems. find the cause of
>> your performance problem and fix it. Including a configuration file
>> will not be the problem.

>
> The OP said "alternative to including config.php". What he can do is to
> declare some session variables in config.php, and then use them
> elsewhere without including config.php. So, the answer to that part is
> "yes".
>
>>
>>> 2.Moreover these variables are constants, is there a way to make the
>>> variables unmodifiable in config.php so that scripts that use them ,
>>> dont overrite them. Is there a php construct which can delare a
>>> variable as constant.
>>>

>>
>> Check out the define().
>>

>


Which means he needs a session_start() at the beginning of every page
(which has more overhead than a simple include), as well as needing to
set the values in the session. And what happens if someone doesn't
enter through the home page, i.e. through a bookmarked page? He'd have
to check EVERY page to ensure the values are set - and if they aren't
either include the file or redirect the person back to a page which does
set the values.

Plus values in the $_SESSION are NOT constant, which he asked for, also.

I could find other problems with your 'suggestion', also. But this
should be enough...

So the answer is NO.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Reply With Quote
  #5 (permalink)  
Old 06-23-2008
hellbringer
 
Posts: n/a
Default Re: question on avoiding abuse of global

lazy schrieb:
> hi,
> I have some constants defined in a php script say config.php.
> I want to use the variables there defined in other scripts.
> couple of questions regd that:
>
> 1. Is there an alternative to including config.php and declaring the
> variables that will be used as global. This seems very inefficient.
>
> 2.Moreover these variables are constants, is there a way to make the
> variables unmodifiable in config.php so that scripts that use them ,
> dont overrite them. Is there a php construct which can delare a
> variable as constant.


Use a singleton pattern.
Reply With Quote
  #6 (permalink)  
Old 06-23-2008
Jerry Stuckle
 
Posts: n/a
Default Re: question on avoiding abuse of global

hellbringer wrote:
> lazy schrieb:
>> hi,
>> I have some constants defined in a php script say config.php.
>> I want to use the variables there defined in other scripts.
>> couple of questions regd that:
>>
>> 1. Is there an alternative to including config.php and declaring the
>> variables that will be used as global. This seems very inefficient.
>>
>> 2.Moreover these variables are constants, is there a way to make the
>> variables unmodifiable in config.php so that scripts that use them ,
>> dont overrite them. Is there a php construct which can delare a
>> variable as constant.

>
> Use a singleton pattern.
>


And how does that solve his problem? How is he going to get the
singleton if he doesn't include the file containing the singleton -
which negates the whole purpose of his question?

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Reply With Quote
  #7 (permalink)  
Old 06-24-2008
Gordon
 
Posts: n/a
Default Re: question on avoiding abuse of global

On Jun 22, 4:08 pm, lazy <arunm...@gmail.com> wrote:
> hi,
> I have some constants defined in a php script say config.php.
> I want to use the variables there defined in other scripts.
> couple of questions regd that:
>
> 1. Is there an alternative to including config.php and declaring the
> variables that will be used as global. This seems very inefficient.
>
> 2.Moreover these variables are constants, is there a way to make the
> variables unmodifiable in config.php so that scripts that use them ,
> dont overrite them. Is there a php construct which can delare a
> variable as constant.


The clue is in your question. You say that what the config file
contains should be considered constants, but you're actually declaring
them as variables.

As you want constants you really should be using define() to declare
them.

Constants defined with define() are different from variables declared
in the global scope. Firstly their value is immutable, in other words
constant, and secondly they don't require use of the global()==
keyword in blocks that aren't in the global scope. They are
automatically usable from anywhere in your code provided the file that
holds them has been included.
Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 04:18 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0