[PHP] Problemen met includen van variable

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een probleem met het includen van een variable. Het zit als volgt:

ik wil graag 'site.php' includen alleen dan 1 variable vanuit site.php bijv. $result_number

Zelf probeerde ik het met:

<?php
include( $result_number . 'site.php' );
?>

verdere uitleg; ik ben bezig met een news system waarbij je ook comments kan maken en nou wil ik onderaan de post dat comments (3) <--- het aantal verschijnt en die moet hij halen uit het bestand site.php.. het variable daarvan is $result_member

maar dat werkt niet.. wie heeft er een oplossing?

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 18-09 21:53

Tux

Het is niet mogelijk om een bepaalde variabele uit een bestand te includen. Wat is er mis met het hele bestand includen, en daarna de variabele uit te lezen?

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nou dan krijg je het form van comments en alle comments er ook bij, maar ik wil alleen dat hij comments en (het aantal) weergeeft dat je er op klikt en dan pas word doorverwezen naar het zien van de comments en waar je comments kan plaatsen

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
is er misschien een andere oplossing?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hoe werkt die oplossing dan includen en daarna variabele uit lezen?

Acties:
  • 0 Henk 'm!

Verwijderd

denk eens na :) > je gebruikt een variabele in meerdere scripts. dan is het handiger om die variabele in een eigen scriptje, dat je kunt includen in alle scripts die daar gebruik van maken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
huh? begrijp het niet.. ben pretty noob in php :D

Acties:
  • 0 Henk 'm!

Verwijderd

dat is zichtbaar, want dit is very basic. ik zou zeggen dat je zelf eerst maar even moet googelen hoe een script variabelen op kan halen uit een externe routine.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

PHP over de schutting 2 -> Programming

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Je hebt kennelijk in het geinclude bestand ook echo's staan. Dit is, op zich, al bad practise in mijn opinie, beter is de variabele te definieren in een lost bestand en die in beide scripts te includen. Nog beter is ervoor te zorgen dat je je logica niet mengt met presentatiecode, maar ik vermoed dat dat voorlopig wat te hoog gegrepen is.

Een hele lelijke fix kun je doen door output buffering aan te zetten voor je het bestand include, maar begin daar liever niet aan. Hoe dat zou werken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  /****
   * Start output buffering. From this point on nothing is 
   * echoed.
   ****/        
ob_start();

  /****
   * Include a file. All echoed data is placed in the output buffer.
   ****/     
include('include.php');

  /****
   * Clean up the output buffer. All data in the buffer is discarded.
   ****/     
ob_end_clean();

  /****
   * A variable defined in the included file is still available now:
   ****/   
echo $included_variable;


Persoonlijk is het eerste waar ik aan denk als ik een output buffer zie dat de coder in kwestie slordig danwel fout bezig is geweest. Er zijn bijna geen situaties waarin een output buffer echt noodzakelijk is, en het vertraagt wel je scripts. Beter is om je code te herschrijven zodat hij niet meer noodzakelijk is, door bijvoorbeeld de waarde uit een losse functie te halen:

PHP:
1
2
3
4
5
6
7
8
9
10
  /****
   * int getCommentCount( [item ID] )
   * 
   * Returns the number of comments for a certain item or
   * false on faillure.   
   ****/
function getCommentCount($itemID = 0) {
  $commentCount = // logic here //
  return $commentCount;
}


Zet je dit (en andere nuttige functies) in een bestand waar verder geen echo's in gebruikt worden kun je dat bestand altijd veilig includen en vervolgens met getCommentCount(itemID) het aantal comments opvragen :)

[ Voor 59% gewijzigd door FragFrog op 28-06-2007 20:08 ]

[ Site ] [ twitch ] [ jijbuis ]

Pagina: 1