Ok tack mcfetto och assah fatta nu =)
PHP Uppgifter?
30 svar · 973 visningar · startad av mahjar · sida 2 av 2
aasah skrev:
Vad skrivs ut?
$minTal = 7;
$maxTal = 9;
echo "min = $mintal, max = $maxTal";
aasah skrev:
aasah skrev:
Vad skrivs ut?
$minTal = 7;
$maxTal = 9;
echo "min = $mintal, max = $maxTal";
min = 7, max = 9
Bokstaven T i mintal måste vara stor som variabeln...
mahjar skrev:
... min = 7, max = 9
Bokstaven T i mintal måste vara stor som variabeln...
Precis. :) Så eftersom den inte var det? Vad skriver det jag skrev ut? ;)
min = , max = 9 :D
:D
aasah skrev:
$minTal = 7;
$maxTal = 9;
echo "min = $mintal, max = $maxTal";
Det här är faktiskt ett hyfsat vanligt fel att göra... ;) Speciellt i lite större filer där tilldelning och utskrift inte står på raderna under varann.
Ett bra tips är att lägga in
error_reporting(E_ALL);
högst upp i skripten för då får man ut även varningar. Med denna rad hade du även fått ut infon att du använde en variabel som inte var satt. Det kan vara bra ibland eftersom felet kan vara betydligt lömskare...
Ex:
$minTal = 7;
$maxTal = 9;
// 100 rader kod
$sextitre = $mintal*$maxTal;
echo "$sextitre"; //vilket spottar ut 0... :bla ;)
Vad händer här?
$nio = 9;
function addNine($x) {
return ($nio + $x);
}
$nitton = addNine(10);
echo "$nitton";
En enkel for loop:
<?php
echo "<select>\n";
for ($antal=22; $antal<51; $antal++) {
echo "<option value=\"$antal\">$antal</option>\n";
}
echo "</select>\n";
?>
aasah skrev:
Vad händer här?
$nio = 9; function addNine($x) { return ($nio + $x); } $nitton = addNine(10); echo "$nitton";
Det den gör:
- Lägger värdet 9 i en varibel som heter nio
- Skapar en funktion (en bit kod man kan anropa), som tar emot ett värde, och skickar tillbaka "värdet"+innehållet i varibeln nio
- Du anropar funktionen addNine och skickar värdet tio till den. addNine plusar tio med innehållet i variablen nio och skickar tillbaks detta.
- eftersom du sätter värdet på variablen $nitton till addNine(10); så kommer addNine(10); att retunera talet 19 som sparas i varibeln nitton.
och så måste man skriva echo $nitton; eftersom det inte är en sträng utan en variabel... :)
mahjar skrev:
... Det den gör:
- Lägger värdet 9 i en varibel som heter nio
- Skapar en funktion (en bit kod man kan anropa), som tar emot ett värde, och skickar tillbaka "värdet"+innehållet i varibeln nio
- Du anropar funktionen addNine och skickar värdet tio till den. addNine plusar tio med innehållet i variablen nio och skickar tillbaks detta.
- eftersom du sätter värdet på variablen $nitton till addNine(10); så kommer addNine(10); att retunera talet 19 som sparas i varibeln nitton.
och så måste man skriva echo $nitton; eftersom det inte är en sträng utan en variabel... :)
Om jag hade givit ett snällt exempel så hade 1-4 varit rätt... §jr Dvs du har rätt beträffande hur funktionsanrop fungerar rent allmänt och vad som menas med att returnera värden. :)
Men... nu var inte det här något helt snällt exempel... §jr. Om du prövar att köra det i ett skript kommer du att upptäcka det. Det finns en liten hake någonstans...
Vad gäller ditt tillägg om echo, så ska du kanske gå tillbaka hit och jämföra... Det var alltså inte det som var haken.
Vill du hellre ha en förklaring än att köra och se vad som faktiskt händer, så kan du visst få det. :) Skriv det i så fall.
Lite rekursion kan ju alltid vara bra att kunna (och användande av -- och ++)
Fråga 1
Vad kommer skrivas ut här?
function power($base, $exp) {
if ($exp == 1)
return $base;
return $base * power($base, --$exp);
}
print power(2,3);
Vad skulle hända om du satte -- efter $exp istället?
Fråga 2
Vad skrivs ut här?
$n = 9;
while ($n--)
print ($n % 3) + 1 . "\n";
Här kommer en som mixar ihop lite som du stött på i tidigare uppgifter samt en ny sak.
$antal_anrop = 0;
function anrop_1()
{
$antal_anrop++;
}
function anrop_2()
{
global $antal_anrop;
$antal_anrop++;
}
for($i=0;$i<10;$i++)
{
($i % 2) ? anrop_1() : anrop_2();
echo "<br>$i : $antal_anrop";
}