webForumDet fria alternativet

Undefined variable

PHP

5 svar · 374 visningar · startad av Mog

Medlem sedan nov. 2003266 inlägg
Frågan#1

Någon som kan hjälpa en PHP-nybörjare ?

I index.php vill jag använda en variabel

<?php
include ("functions.php");
echo $startTime;
?>

som deklareras i en funktion i functions.php

<?php
function startTiming()
{
    global $startTime;

    $microtime = microtime();
    $microsecs = substr($microtime, 2, 8);
    $secs = substr($microtime, 11);
    $startTime = "$secs.$microsecs";
}
?>

Ger följande felmeddelande: "Notice: Undefined variable: startTime in....".
Så jag letade lite här på WF och hittade nåt om "register_globals" i php.ini som jag ändrade till "on", hjälpte inte, har startat om datorn.
Har även läst att det inte rekommenderas att sätta den till on och jag tänker försöka ändra så att funktionen returnerar ett värde istället, (bör funka eller ?) men jag vill gärna veta varför det inte funkar som det är.

Någon som har några tips ?

Medlem sedan mars 20025 907 inlägg
#2

Variabeln sätts ju inte förrens du kör funktionen första gången (eller så har jag helt fel).

include ("functions.php");
startTiming();
echo $startTime;

kanske?

Medlem sedan mars 20032 667 inlägg
#3

Jag skulle gjort så här:

<?php
function startTiming()
{

    $microtime = microtime();
    $microsecs = substr($microtime, 2, 8);
    $secs = substr($microtime, 11);
    $startTime = "$secs.$microsecs";

    return $startTime;
}
?>
include ("functions.php");
$startTime = startTiming();
echo $startTime;
Medlem sedan nov. 2003266 inlägg
#4

Peeer skrev:

Variabeln sätts ju inte förrens du kör funktionen första gången (eller så har jag helt fel).

Den var med från början men har kommit bort i mina tester.

Fast nu funkar det även med register_globals satt till off.
Vad gör den egentligen ?
Behöver man starta om nåt efter ändringar i php.ini ?

Medlem sedan mars 20025 907 inlägg
#5

Register globals är ett otyg som bör vara avstängt! Det "underlättar" för utvecklaren genom att ex. göra så att $foo automatiskt får värdet som $_POST["foo"] har.

Ta en titt på php's egna beskrivning av varför man inte bör använda funktionen.

Efter ändringar i php.ini ska du starta om din webbserver (programvaran, inte hela datorn).

/r uppdaterade länken

Medlem sedan nov. 2003266 inlägg
#6

Tackar för svaren :bire
(Återkommer säkert med fler frågor så småningom)

350 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
222 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)