/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Er det ikke ligemeget hvor en variabel stå~
Fra : Morten M. Kaastrup


Dato : 10-06-04 20:44

Hej

Jeg har den her kode, som finder ud af, hvad for en tekst den skal vise:

if ($vis == 'startsiden') {
require("indhold/startsiden.php");
$den_viste_side = "Startsiden";


Så skriver jeg <? echo "$den_viste_side"; ?> .. så kommer problemet. Den
virker kun når "<? echo "$den_viste_side"; ?>" står efter min kode hvor den
finder ud af, hvad $den_viste_side er:

<? echo "$den_viste_side"; ?> (virker ikke)

if ($vis == 'startsiden') {
require("indhold/startsiden.php");
$den_viste_side = "Startsiden";

<? echo "$den_viste_side"; ?> (virker)

Hvorfor vil den ikke udskrive $den_viste_side, når den står over koden hvor
den finder $den_viste_side.

mvh. Morten



 
 
Bertel Lund Hansen (10-06-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 10-06-04 20:52

Morten M. Kaastrup skrev:

>Hvorfor vil den ikke udskrive $den_viste_side, når den står over koden hvor
>den finder $den_viste_side.

Fordi rækkefølgen er afgørende. Sekventiel kode afvikles én linje
ad gangen.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Morten M. Kaastrup (11-06-2004)
Kommentar
Fra : Morten M. Kaastrup


Dato : 11-06-04 07:07

> >Hvorfor vil den ikke udskrive $den_viste_side, når den står over koden
hvor
> >den finder $den_viste_side.
>
> Fordi rækkefølgen er afgørende. Sekventiel kode afvikles én linje
> ad gangen.

Okay. Det vidste jeg ikke. Det må man sige er temmelig relavant. tak

Nu skal jeg så bare have den til at: require("indhold/startsiden.php");
lidt længere nede på siden.
Jeg har gjort sådan her:

if ($vis == 'startsiden') {
$indhold = 'require("indhold/startsiden.php")';

Og så længere nede <? echo "$indhold"; ?>

Men så skriver den bare: require("indhold/startsiden.php") der hvor jeg
udskriver $indhold. Hvordan får jeg $indhold til at udskrive noget PHP, som
den skal læses som php?

Håber ikke jeg kludrer for meget rundt i det :)

mvh. Morten



Bertel Lund Hansen (11-06-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 11-06-04 08:38

Morten M. Kaastrup skrev:

>Nu skal jeg så bare have den til at: require("indhold/startsiden.php");

Ja, og der står det rigtigt.

> if ($vis == 'startsiden') {
> $indhold = 'require("indhold/startsiden.php")';

Her står det forkert. Du har enkelte anførselstegn om hele
requiredelen. Fjern dem.

>Og så længere nede <? echo "$indhold"; ?>

Ja.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Kim Emax (11-06-2004)
Kommentar
Fra : Kim Emax


Dato : 11-06-04 09:32

Morten M. Kaastrup wrote:

> Håber ikke jeg kludrer for meget rundt i det :)

lad mig lave et simpelt eksempel for dig:

du har en fil: print_navn.php, som ser således ud:

<?
print "du hedder $navn";
?>

og den inkluderer du i index.php, som ser sådan her ud:

<?
$navn = "Morten M. Kaastrup";
print "filen print_navn.php printer følgende:<P>";
include "print_navn.php";
?>

Her er variablen defineret før den bruges (i print_navn.php), men gør du
således:

<?
print "filen print_navn.php printer følgende:<P>";
include "print_navn.php";
$navn = "Morten M. Kaastrup";
?>

Så bliver navnet ikke printet.

Håber det får skyerne til at lette lidt

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk



Morten M. Kaastrup (11-06-2004)
Kommentar
Fra : Morten M. Kaastrup


Dato : 11-06-04 07:51

Jeg har fået det til at virke nu, ved at bruge $_GET
Med $_GET kan man hente variabler over alt i dokumentet ikke? - så er det
lige meget hvor den står?

mvh. Morten






Bertel Lund Hansen (11-06-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 11-06-04 08:58

Morten M. Kaastrup skrev:

>Jeg har fået det til at virke nu, ved at bruge $_GET
>Med $_GET kan man hente variabler over alt i dokumentet ikke? - så er det
>lige meget hvor den står?

Man kan ikke bruge variable før de har fået en værdi (medmindre
man boltrer sig med NULL-værdier og den slags, men se bort fra
det). Når først de har fået en værdi, kan de bruges et vilkårligt
sted i koden.

Man kalder det at initilisere sine variable når man sørger for at
de har en værdi før de skal bruges. Gør dig det til en vane altid
at gøre dette, uanset om sproget tillader noget andet. I PHP får
man ingen fejl ved at tilgå en udefineret variabel, og det kan
godt virke forvirrende. Man tror det virker, og der kommer ingen
fejlbesked, men variablen indeholder bare ikke det man tror. I
mange andre sprog ville det give en fejl.

$_GET er ikke en fidus til at omgå det forhold. Det er en metode
til at hente nogle allerede definerede værdier ind i en varabel
eller til at aflæse dem uden at lægge dem i en variabel.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Jonas Koch Bentzen (11-06-2004)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 11-06-04 13:07

Bertel Lund Hansen wrote:
>
> I PHP får
> man ingen fejl ved at tilgå en udefineret variabel

Det gør man, hvis man bruger

<?php
error_reporting(E_ALL);

echo $navn; // Giver fejl
?>

eller bruger sin egen fejlhåndteringsfunktion:

<?php
set_error_handler('fejl');

function fejl($type, $besked) {
   echo $besked;
}

echo $navn; // Giver fejl
?>

Jeg kører altid med egen fejlhåndteringsfunktion, og derfor får jeg at
vide, hvis jeg bruger en variabel, der ikke er initialiseret - eller en
array-nøgle, der ikke findes.

http://dk.php.net/manual/en/function.set-error-handler.php

Morten M. Kaastrup (11-06-2004)
Kommentar
Fra : Morten M. Kaastrup


Dato : 11-06-04 13:23

Tak til alle :)

Der virker fint :) - skulle "bare" rykke lidt rundt på php-koderne

mvh. Morten



Bertel Lund Hansen (11-06-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 11-06-04 14:53

Jonas Koch Bentzen skrev:

>> I PHP får man ingen fejl ved at tilgå en udefineret variabel

>Det gør man, hvis man bruger
><?php
>error_reporting(E_ALL);

Tak, så ved jeg det.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste