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 ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
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. |
|
|||
|
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 ================== |
|
|||
|
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(). > |
|
|||
|
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 ================== |
|
|||
|
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. |
|
|||
|
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 ================== |
|
|||
|
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. |