[PHP] Includes en functies

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GdeKeijzer
  • Registratie: Januari 2001
  • Laatst online: 04-09 09:08
Ik heb 2 includes aangemaakt (settings.php en func.php).
Deze bevatten functies en settings (algemene waarden en teksten)

Als ik in admin.php (bijvoorbeeld) deze include en de functie aanroep
PHP:
1
2
3
4
include 'includes/settings.php';
include 'includes/func.php';

page_header ('Admin Area');

dan lijkt het erop dat vooringestelde waardes uit settings.php niet doorkomen in deze functie.

Alle code lijkt prima, maar ben ff de weg kwijt. Misschien kijk ik er wel vreselijk overheen.

nog wat code (niet compleet)

settings.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Database
//==========================
$db_host = 'localhost';
$db_database = 'servicedesk';
$db_login = 'Blabla';
$db_pass = 'Blabla';

// Algemeen
//==========================
$str_title = 'ServiceDesk';
$str_version = '0.1';
$str_auteur = 'Naam';
$str_website = 'def.com';
$str_email = 'abc@def.com';

func.php
PHP:
1
2
3
4
5
6
7
8
9
function page_header ($title='')
{
    echo "<HTML>";
    echo "<HEAD><TITLE>$str_title $title</TITLE></HEAD>";
    echo "<BODY>";
    echo $str_title;
    echo $title;
    
}

Niet omdat het moet, maar omdat het kan....


Acties:
  • 0 Henk 'm!

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 18-09 15:41

mOrPhie

❤️❤️❤️❤️🤍

Ik denk dat $str_title gewoon buiten de scope van page_header valt en je $str_title dus ook gewoon als argument moet meegeven. :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


Acties:
  • 0 Henk 'm!

Verwijderd

In jouw functie bestaan jouw variabele niet meer.
Dus je zult die varaiabele mee moeten geven.

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
function page_header ($title='', $str_title)
{
    echo "<HTML>";
    echo "<HEAD><TITLE>$str_title $title</TITLE></HEAD>";
    echo "<BODY>";
    echo $str_title;
    echo $title;
    
}
?>


PHP:
1
page_header ('Admin Area', $str_title);



En als je je error_reporting op E_ALL had gezet dan had je een notice gehad.
[edit]
Te laat...

[ Voor 16% gewijzigd door Verwijderd op 28-01-2005 12:26 ]


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 00:22

DizzyWeb

Ondertiteld

Inderdaad, of als argument meegeven, of in je page_header() functie $str_title global declareren.

Acties:
  • 0 Henk 'm!

  • GdeKeijzer
  • Registratie: Januari 2001
  • Laatst online: 04-09 09:08
Dus je bedoelt dat $str_title nooit binnen die functie zichtbaar is.
Is dit anders op te lossen? Ook met oog op andere functies?

Niet omdat het moet, maar omdat het kan....


Acties:
  • 0 Henk 'm!

Verwijderd

Die variabele hebben geen scope binnen die functie.
Het beste is ze gewoon meegeven als argument.

Global maken is ranzig IMHO.

[edit]
Lees dit maar even:
http://nl3.php.net/variables.scope

[ Voor 24% gewijzigd door Verwijderd op 28-01-2005 12:30 ]


Acties:
  • 0 Henk 'm!

  • GdeKeijzer
  • Registratie: Januari 2001
  • Laatst online: 04-09 09:08
Ah gevonden... inderdaad global...

PHP:
1
2
3
4
5
6
7
8
9
10
11
function page_header ($title='')
{
    global $str_title;
    
    echo "<HTML>";
    echo "<HEAD><TITLE>$str_title $title</TITLE></HEAD>";
    echo "<BODY>";
    echo $str_title;
    echo $title;
    
}


Dat was het zetje wat ik nodig had.. thanx

Niet omdat het moet, maar omdat het kan....

Pagina: 1