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?
5 svar · 374 visningar · startad av Mog
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 ?
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?
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;
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 ?
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
Tackar för svaren :bire
(Återkommer säkert med fler frågor så småningom)