Gå til innhold

PHP·pub - Programming With Attitude - and beer


Anbefalte innlegg

Videoannonse
Annonse

Wow, jeg tror jeg må lese litt mer om PHP5, ja. Det hadde jeg aldri trodd...

 

Jeg skal sjekke opp i det selv, men vet du kanskje om overloading funker med antall parametre sendt nå uten å måtte telle opp antall parametre i funksjonen?

 

altså at man kan lage

function minFunksjon($a) {
// noe for $a
}
function minFunksjon($a, $b) {
// noe helt annet for $a
// et eller annet for $b
}

Endret av drange
Lenke til kommentar

Vet at dette er mulig (og en grei feature også) i C/C++, men tror neppe det finnes for PHP

PHP
<?php

function minFunksjon($a)

{

echo "a";

}

 

function minFunksjon($a$b)

{

echo "a og b";

}

 

minFunksjon('a');

minFunksjon('a''b');

 

?>

 

Fatal error: Cannot redeclare minfunksjon() (previously declared in /var/www/dev/overloading.php:2) in /var/www/dev/overloading.php on line 10

Lenke til kommentar
Noen som har vært borti webhuset.no?

Flyttet til domeneshop i forrige uke, men de var ikke som forventet. Så derifra skal jeg flytte uansett.

7404514[/snapback]

Nei, har hatt noen samtaler med dem og sånt, men aldri brukt tjenestene deres. Jeg tror du kan stole på at de får jobben gjort, de er veldig fleksible. Men det koster jo, da.

 

Nå vet jeg ikke hva du vil, men hvis du kun trenger L(*BSD/*N*X)AMP så bør du vurdere one.com. Hvis du trenger noe mer enn det, altså shell-tilgang, egenkonfigurert webserver og mail, med mer, bør du nok kontakte Webhuset, ja.

7461102[/snapback]

Jeg har allerede valgt dem :)

Tok nøyaktig 15 min fra jeg bestilte, til dem ringte, pga kluss i bestillingen fra min side.

 

Fikk jo rikelig med lagringsplass, og støtte for PHP 4.3, 4.4 og 5.x.

Eneste som jeg kunne prikket litt på var antall databaser, men det er sikkert nok med en mail, så har man fikset det.

Lenke til kommentar
Hvor mange år er det siden PHP5 kom for første gang?

7463481[/snapback]

 

I motsetning til det folk sier her, dukket første PHP5-release opp i 2003. 29. Juni 2003 kom PHP 5.0.0 Beta 1. :)

7464566[/snapback]

Du kan jo prøve å endre wikipedia og se.

Tror ikke så mange regner etter beta, bortsett fra google, eller kanskje det bare er meg.

@drange:

Du kan simulere overloading ved å bruke den "magiske" metoden __call().

Personlig synes jeg det er misvisende å kalle detter overloading, men deter ihvertfall mulig.

Lenke til kommentar
Wow, jeg tror jeg må lese litt mer om PHP5, ja. Det hadde jeg aldri trodd...

 

Jeg skal sjekke opp i det selv, men vet du kanskje om overloading funker med antall parametre sendt nå uten å måtte telle opp antall parametre i funksjonen?

 

altså at man kan lage

function minFunksjon($a) {
// noe for $a
}
function minFunksjon($a, $b) {
// noe helt annet for $a
// et eller annet for $b
}

7465706[/snapback]

Det du kan gjøre er:

PHP
<?php

function myFunction($a$b null) {

if ($b &#33;= null) {

return myOtherFunction($a);

else {

return anotherFunction($a$b);

}

}

Lenke til kommentar

Desverre er ikke PHP5 heller skikkelig OOPish med tanke på funksjonsoverlasting. Skriver du 2 funksjoner med samme navn uansett antall parametre får du redeclaration parse error.

 

Skulle jo nesten bare skrevet en egen php-kompilator som støtter det skikkelig, men hadde nok tatt litt tid ;)

Lenke til kommentar
Legger til en kommentar fra Slashdot: PHP 5.2 and MySQL... i!

 

Noen som har noen synspunkt på dette?

7499655[/snapback]

 

Jeg har lest gjennom hele changelog og ikke funnet noen steder som sier at MySQLi nå er default MySQL-extension. Men folk bør kanskje ha fått med seg at PHP5 ikke har MySQL-extensionen påslått @ default, slik PHP4 hadde. Kanskje slashdot-fyren ikke helt fikk med seg det, eller klarte å kompilere PHP med --with-mysqli istedetfor --with-mysql ?

Lenke til kommentar
Jeg glemte å svare og takke for svar på et tidligere spørsmål, så: takk!

 

 

Men jeg har et annet spørsmål i tillegg; er det mulig for en funksjon å finne ut hvilket fil og linje som kalte den uten å legge til ekstra argumenter?

7528423[/snapback]

 

Ja, en kan bruke debug_backtrace(). :)

 

PHP
<?php

 

function lol($arg1)

{

echo "lol\n";

echo "<pre>";

var_dump(debug_backtrace());

echo "</pre>";

}

 

lol('testing'); // linje 11

 

?>

 

Output:

lol

 

array(1) {

  [0]=>

  array(4) {

    ["file"]=>

    string(26) "/var/www/dev/backtrace.php"

    ["line"]=>

    int(11)

    ["function"]=>

    string(3) "lol"

    ["args"]=>

    array(1) {

      [0]=>

      &string(7) "testing"

    }

  }

}

Endret av jorgis
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...