Avatar billede noodrem Nybegynder
01. marts 2004 - 18:47 Der er 6 kommentarer og
2 løsninger

Punktummer i script

Hej

I følgende script:

/* Hvor flytter vi fra og til */
$fra = $_FILES["upfil"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];

/* Accepterer vi filens stoerrelse? */
$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
  die("Desværre - filen er for stor. Jeg accepterer kun " .
      $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
      ceil($fil_stoerrelse, 1) . " kb");
}

/* Saa koerer vi */
if(function_exists("move_uploaded_file")) {
  move_uploaded_file($fra, $til);
} else {
  copy($fra, $til);
}

Kan jeg se at der en del steder bruges "."
Det bruges f.eks. i denne linje:

$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES

Men hvad er den egentlige grund til at der bruges punktummer?
Avatar billede detox Nybegynder
01. marts 2004 - 18:50 #1
De bruges til at sætte strenge sammen med.
$str = "a" . "b"; // "ab"
Avatar billede rasmusbg Nybegynder
01. marts 2004 - 18:50 #2
Det bruges til at sætte to strenge sammen.
Avatar billede taskmgr Nybegynder
01. marts 2004 - 18:55 #3
http://dk.php.net/manual/en/language.operators.string.php

detox' eksempel gør det samme som f.eks.:

$str = "a";
$str .= "b";

// $str = "ab";
Avatar billede jakoba Nybegynder
01. marts 2004 - 18:56 #4
punktummerne er phps 'regne operator' for 'sæt 2 strenge sammmen
    "storebælts" . "broen"  giver  "storebæltsbroen"
I andre sprog bruger man nogengange anddre tegn til det samme, fx i javascript hvor +  lægger to strenge sammen.
Og der er valget af . i php så et bedre valg for med to forskellige regneoperatorer kan php se hvornår det er strenge og hvornår det er tal. Det er der problemer med i java script:
i php:
    echo "54" + 46;    // skriver 100
    echo "54" . 46;    // skriver 5446
i Javascript
    alert( "54" + 46 ) // giver 5446, for at sikre der regnes på tal må du lave sære krumspring som:
    alert( (1*"54") + 46 ) // giver 100

mvh JakobA
Avatar billede noodrem Nybegynder
01. marts 2004 - 19:02 #5
Okay.
Jeg kan se at taskmgr skriver følg:

$str = "a";
$str .= "b";

// $str = "ab";

Vil det sige punktummet, skal sættes foran = tegnet, og ikke inde i strengen hvis det skal virke?
Avatar billede taskmgr Nybegynder
01. marts 2004 - 19:07 #6
Nej, det er en alternativ metode.

I denne sammenhæng, se evt.:
http://dk.php.net/manual/en/language.operators.assignment.php
Avatar billede jakoba Nybegynder
01. marts 2004 - 19:08 #7
Nej.  Det med at sætte en operator foran lighedtegne er en 'forkortelse'
$str .= "b";    er en forkortelse for  $str = $str . "b";
ligesom  $i++  er en forkortelse for  $i = $i + 1  (eller $i += 1 :-) det kan gøres med næste alle php's regnetegn)
Avatar billede taskmgr Nybegynder
01. marts 2004 - 19:22 #8
Smider lige et svar...

Men spørg bare løs :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester