473,561 Members | 3,564 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

cannot access inc files from a function

I have the following piece of code (symplified)

require("lang.{ $lang}.inc.php" ); // I include the inc. files
....
function decodify($techn ique) { // functions that give me back the
value in inc.file
switch ($technique) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}
.....
Somewhere I call the function ....decodify($m yTechnique)

But it doen't print the content from $charcoal, $oil or, etc.
Do I have to declare the function global or something like that. In
that case, how should I do it??
Many thanks. Bettina

Jul 29 '05 #1
9 1817
Hallo Bettina,

What is the exact name of the file you are trying to include. Your construct
is very weird, if the file is "lang.EN.inc.ph p" for example, try:

require("lang.$ lang.inc.php");

Also, could you post the code of that included file so we can see if the
values are really there.

Hope this helps,

DXTrim
<be*****@coaste r.ch> wrote in message
news:11******** **************@ g49g2000cwa.goo glegroups.com.. .
I have the following piece of code (symplified)

require("lang.{ $lang}.inc.php" ); // I include the inc. files
...
function decodify($techn ique) { // functions that give me back the
value in inc.file
switch ($technique) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}
....
Somewhere I call the function ....decodify($m yTechnique)

But it doen't print the content from $charcoal, $oil or, etc.
Do I have to declare the function global or something like that. In
that case, how should I do it??
Many thanks. Bettina

Jul 29 '05 #2
be*****@coaster .ch wrote:
I have the following piece of code (symplified)

require("lang.{ $lang}.inc.php" ); // I include the inc. files
...
function decodify($techn ique) { // functions that give me back the
value in inc.file
switch ($technique) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}
....
Somewhere I call the function ....decodify($m yTechnique)

But it doen't print the content from $charcoal, $oil or, etc.
Do I have to declare the function global or something like that. In
that case, how should I do it??
Many thanks. Bettina


You cannot access a variable that is outside of a function unless you
write global $var; inside the function. The other way is to include the
lang file inside the function.

Gvre
Jul 29 '05 #3
Hi DXTrim,

the values are really there since I use the references outside the
function and it work ok. I think it has something to do with what says
Giannis regarding the global variable. I'll try that. Thank you.

DXTrim schrieb:
Hallo Bettina,

What is the exact name of the file you are trying to include. Your construct
is very weird, if the file is "lang.EN.inc.ph p" for example, try:

require("lang.$ lang.inc.php");

Also, could you post the code of that included file so we can see if the
values are really there.

Hope this helps,

DXTrim
<be*****@coaste r.ch> wrote in message
news:11******** **************@ g49g2000cwa.goo glegroups.com.. .
I have the following piece of code (symplified)

require("lang.{ $lang}.inc.php" ); // I include the inc. files
...
function decodify($techn ique) { // functions that give me back the
value in inc.file
switch ($technique) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}
....
Somewhere I call the function ....decodify($m yTechnique)

But it doen't print the content from $charcoal, $oil or, etc.
Do I have to declare the function global or something like that. In
that case, how should I do it??
Many thanks. Bettina


Jul 29 '05 #4
How should I define the global variable inside this function? What must
be global is the lang.{$lang}.in c.php so that it can be read inside the
function, isn't it?. I tried including the lang file in the function
but I receive an error.

require("lang.{ $lang}.inc.php" );
function technique($t) {
switch ($t) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}

<? technique($myTe chnik ?>

Jul 29 '05 #5
be*****@coaster .ch wrote:
How should I define the global variable inside this function? What must
be global is the lang.{$lang}.in c.php so that it can be read inside the
function require("lang.{ $lang}.inc.php" );
function technique($t) {
switch ($t) {
case 'C':
echo $charcoal;
...


$charcoal is local to your function. You can do it in two ways..

1.
function technique($t) {
global $charcoal;

switch ($t) {
case 'C':
echo $charcoal;

2.
function technique($t) {
switch ($t) {
case 'C':
echo $GLOBAL['charcoal'];
Jul 29 '05 #6
be*****@coaster .ch wrote:
How should I define the global variable inside this function? What must
be global is the lang.{$lang}.in c.php so that it can be read inside the
function, isn't it?. I tried including the lang file in the function
but I receive an error.

require("lang.{ $lang}.inc.php" );
function technique($t) {
switch ($t) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}

<? technique($myTe chnik ?>


function technique($t) {
global $lang; // here we are using the global var $lang
$incFile = "lang.{$lang}.i nc.php";

if ( file_exists($in cFile) )
include ($incFile);
else
return;

switch ($t) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}

Gvre

ps. To OP. You can put all strings in file "lang.{$lang}.i nc.php" in an
array and access it like this. If you do it like this you don't have to
change the function technique($t) every time you put a new var in lang file.

// vars file
$strings = array (
"C" => "charcoal",
"O" => "oil",
"A" => "acrylic"
);
// index ? file
$incFile = "lang.{$lang}.i nc.php";
if ( file_exists($in cFile) )
include ($incFile);
else
return; // or any other action

// functions file
function technique($t) {
global $strings;

if (array_key_exis ts($t, $strings))
echo $strings[$t];

}

Jul 29 '05 #7
Thank you, the first option works ok!

Jul 29 '05 #8
Hallo Giannis, that of putting everything in my lang file so that I
don't have to change the function every time I add a new variable works
fine! Thank you for the tip!

Giannis Vrentzos schrieb:
be*****@coaster .ch wrote:
How should I define the global variable inside this function? What must
be global is the lang.{$lang}.in c.php so that it can be read inside the
function, isn't it?. I tried including the lang file in the function
but I receive an error.

require("lang.{ $lang}.inc.php" );
function technique($t) {
switch ($t) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}

<? technique($myTe chnik ?>


function technique($t) {
global $lang; // here we are using the global var $lang
$incFile = "lang.{$lang}.i nc.php";

if ( file_exists($in cFile) )
include ($incFile);
else
return;

switch ($t) {
case 'C':
echo $charcoal;
break;
case 'O':
echo $oil;
break;
case 'A':
echo $acrylic;
break;
}
}

Gvre

ps. To OP. You can put all strings in file "lang.{$lang}.i nc.php" in an
array and access it like this. If you do it like this you don't have to
change the function technique($t) every time you put a new var in lang file.

// vars file
$strings = array (
"C" => "charcoal",
"O" => "oil",
"A" => "acrylic"
);
// index ? file
$incFile = "lang.{$lang}.i nc.php";
if ( file_exists($in cFile) )
include ($incFile);
else
return; // or any other action

// functions file
function technique($t) {
global $strings;

if (array_key_exis ts($t, $strings))
echo $strings[$t];

}


Jul 30 '05 #9
> But it doen't print the content from $charcoal, $oil or, etc.
Do I have to declare the function global or something like that. In
that case, how should I do it??
Many thanks. Bettina


to combine some of the ideas in this thread...
replace the whole case block with:

echo $GLOBAL[array('C'=>'cha rcoal','O'=>'oi l','A'=>'acryli c')[$technique]];
Bye.
Jasen
Aug 16 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
57889
by: Chris Herring | last post by:
Hi there: Well, let me start off by saying that I am a Visual Studio drag and drop weenie, not a real programmer. So I tend to get confused when things do not look like the instructions said they were going to look :) . Here is my current dilemma: I am having a strange problem with my ASP.NET application. I am building the application using...
9
715
by: Paul | last post by:
Hi, VB.NET is saying the file I am creating is in use by another process and won't complete its task of moving the file to the specified destination folder. Here is my code (the main bit anyway).... Private Sub LogChange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs) If e.ChangeType = WatcherChangeTypes.Created Then
8
5459
by: baustin75 | last post by:
Posted: Mon Oct 03, 2005 1:41 pm Post subject: cannot mail() in ie only when debugging in php designer 2005 -------------------------------------------------------------------------------- Hello, I have a very simple problem but cannot seem to figure it out. I have a very simple php script that sends a test email to myself. When I...
10
4426
by: Jean-David Beyer | last post by:
I have some programs running on Red Hat Linux 7.3 working with IBM DB2 V6.1 (with all the FixPacks) on my old machine. I have just installed IBM DB2 V8.1 on this (new) machine running Red Hat Enterplise Linux 3 ES, and applied FixPack fp5_mi00069.tar to it. After creating an instance, starting the database, creating a database, and entering...
6
4725
by: Peter Frost | last post by:
Please help I don't know if this is possible but what I would really like to do is to use On Error Goto to capture the code that is being executed when an error occurs. Any help would be much appreciated. Thanks in advance
2
7760
by: Raed Sawalha | last post by:
Hello , I have windows service which do listening to specified directory using FileSystemWatcher , on Created Event and Get all the files in the directory using Directory.GetFiles function then foreach file in the files list and passed the file path to a function to read its content then process it then move it to another directory am reading...
0
3474
by: Sin | last post by:
> Xxxxx : error PRJ0008 : Could not delete file 'd:\xxxxxxx.dll'. > Make sure that the file is not open by another process and is not write-protected. > > LINK : fatal error LNK1168: cannot open ../../Debug/xxxxx.dll for writing > > The file 'xxxxxx.dll' cannot be copied to the run directory. The process cannot > access the file because it...
6
3353
by: JonSteng | last post by:
..Net Visual Studio Professional 2003 Version 7.1.3088 ..Net Framework 1.1 SP1 Version 1.1.4322 IIS 5.1 Windows XP Professional SP2 Micron T3000 Laptop (1.5 GHz; 1GB RAM; 40GB HD with 17GB Free) I installed FrontPage server extensions to IIS on my computer while following instructions in a Microsoft ASP.Net MCSD training book. After...
10
4431
by: dermot | last post by:
I have wrriten a small windows service application in visual studio ..net 2003 which listens for incoming FTP files. These files would overwrite over time due to duplicate file names. However any time the windows service tries to rename the file (using flFile.move(source,destination)) it gets an error saying access is denied. The files are...
1
7618
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
7930
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
0
6210
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
1
5472
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5187
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3617
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3600
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2068
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
0
896
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.