[PHP] Code werkt niet in functie, wel rechtstreeks

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Thomas de Roo

Thomas de Roo

03/10/2010 14:05:30
Quote Anchor link
Hallo mensen,

Ik heb een functie in PHP, in de werkelijkheid is code ingewikkelder, maar nu hou ik het simpel, want deze simpele versie werkt ook niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function load_language($lang) {
require_once('include/languages/'.$lang.'.php');
}

?>


als ik hem op deze manier aanroep krijg ik geen error:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
//include important settings, variables, and functions
require_once ('Settings.php');
require_once 'include/functions.php';

//parlez vous...
load_language(setting("language"));
?>

Maar de strings in het taal bestand worden dan ook niet geladen.

Maar doe ik index.php het volgende zonder functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
//include important settings, variables, and functions
require_once ('Settings.php');
require_once 'include/functions.php';

//parlez vous...
require_once('include/languages/'.setting("language").'.php');
?>


Dan wel...

Wat doe ik nu mis?

~Thomas
 
PHP hulp

PHP hulp

05/08/2020 23:37:29
 
Karl Karl

Karl Karl

03/10/2010 14:25:34
Quote Anchor link
Leuk een foutmelding.
Er zijn honderden foutmeldingen.
Stop! Keer om!
Krijg je die?
 
Thomas de Roo

Thomas de Roo

03/10/2010 14:27:15
Quote Anchor link
Nee ik krijg: Kijk uit voor vallende piano's
Ik zeg duidelijk dat er GEEN foutmeldig komt...
Met "Dan wel..." bedoelde ik dat de strings dan wel worden geladen...
 
Karl Karl

Karl Karl

03/10/2010 14:40:22
Quote Anchor link
En de error reporting en display_errors staan wel aan?
 
Thomas de Roo

Thomas de Roo

03/10/2010 14:46:05
Quote Anchor link
In settings.php staat
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
error_reporting(E_ALL);
?>

Dus ja...
Maar je zou toch zeggen dat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?Php
load_language(setting("Language"));
?>

Met als load_language($lang):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function load_language($lang) {
require_once('include/languages/'.$lang.'.php');
}

?>

(wat niet werkt)
Precies hetzelfde is als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
require_once('include/languages/'.setting("language").'.php');
?>
Gewijzigd op 03/10/2010 14:46:38 door Thomas de Roo
 
Karl Karl

Karl Karl

03/10/2010 14:55:54
Quote Anchor link
Wat laad het eigenlijk in ?
Je zit namelijk in een functie dus alles in die functie wordt binnen die functie ingeladen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function test ()
{

$blaat = 'test';
return $blaat;
}

echo test();
$blaat = 'blaat';
echo test();
/* levert:
testtest
*/

?>

Zie global.
 
Thomas de Roo

Thomas de Roo

03/10/2010 14:57:31
Quote Anchor link
de functie moet een bestand includeren waarin arrays met teksten staan...
 
Karl Karl

Karl Karl

03/10/2010 14:59:34
Quote Anchor link
Lees php.net.
Zie mijn voorbeeld.

Het wordt dus wel ingeladen.
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:07:35
Quote Anchor link
Of ik snap jou, niet of jij snapt mijn niet...
Er is een bestand voor elke taal: dutch.php bijv.
In dat bestand staan variables (arrays) met teksten die global ik voordat ik ze gebruik,
bijv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//dutch.php
$menu = array(
'home' => 'Begin',
'register' => 'Aanmelden'
);
?>


//menu.php
<?php
global $menu;
echo $menu['home'];
?>

Hiervoor moet het taal bestand zijn geincludeerd want wel rechtstreeks lukt maar niet met de functie loadLanguage();
Wat ik raar vind want de functie die header1.php includeert werkt wel...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function theme_header() {
global $themepath;
include $themepath . '/header1.php';
}

?>
 
Karl Karl

Karl Karl

03/10/2010 15:13:23
Quote Anchor link
Je hebt de variabelen dan nog steeds niet global.
En eigenlijk is global ook wel vies.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function test ()
{

$blaat = 'test';
return $blaat;
}

echo test();
global $blaat;
$blaat = 'blaat';
echo test();
/* levert:
testtest
*/

?>

Jij snapt het dus niet.
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:15:02
Quote Anchor link
Welke variabelen moet ik dan global hebben> =)
 
Karl Karl

Karl Karl

03/10/2010 15:17:06
Quote Anchor link
Het is de plek waar de global keyword staat.
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:18:48
Quote Anchor link
Ehm?
Waar moet die dan staan?
 
Karl Karl

Karl Karl

03/10/2010 15:28:49
Quote Anchor link
Voor de variabelen in je functie.
Daarom is global dus vies.
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:33:01
Quote Anchor link
Maar ligt het aan mij of gebruikt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function load_language($lang) {
require_once('include/languages/'.$lang.'.php');
}

?>

geen variabelen die global moeten zijn?
 
Karl Karl

Karl Karl

03/10/2010 15:49:04
Quote Anchor link
Lees nouw eens een keer wat er op php.net staat.
Variabelen binnen functies zijn alleen binnen functies toegankelijk.
Wil je ze daarbuiten gebruiken. Gebruik dan global.
Jij include in die functie allerlei variabelen.
Dus die moeten binnen die functie het keyword global hebben.
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:51:26
Quote Anchor link
Ik snap het wel.
Maar wat moet er dan achter global staan in die functie?
Moet ik dan alle variabelen (onbepaald aantal) uit het geincludeerde bestand een global keyword geven?
 
Karl Karl

Karl Karl

03/10/2010 15:53:42
Quote Anchor link
JA!!!!!!!!!!!
Dat staat er toch op php.net!
Alle variabelen binnen je functie die je GLOBAL wilt gebruiken moeten het keyword global hebben.
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:56:33
Quote Anchor link
Maar nou is het zo dat het aantal variabelen kan veranderen, dus er komt een bij of er gaat een af...
Hoe kan ik een loopje alle variabelen op global zetten?
 
Karl Karl

Karl Karl

03/10/2010 15:57:46
Quote Anchor link
Snap je nu nog niet dat global vies / onhandig / slecht / onzin / troep is?
 
Thomas de Roo

Thomas de Roo

03/10/2010 15:58:35
Quote Anchor link
Wat moet ik dan doen ipv. global? D:

Toevoeging op 03/10/2010 16:21:50:

En het was opgelost =)
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.