Gå til innhold

PHP·pub - Programming With Attitude - and beer


Anbefalte innlegg

Skrevet (endret)

Noen som vet om PHP har tenkt å tillate å gjøre variabler private eller beskyttede any time soon?

Endret av drange
Videoannonse
Annonse
Skrevet
Noen som vet om PHP har tenkt å tillate å gjøre variabler private eller beskyttede any time soon?

7465260[/snapback]

 

PHP5:

PHP

<?php

 

private $private;

public $public;

protected $protected;

public static $public_stat;

?>

 

En del andre tøffe ting er kommet i PHP5 også, bare les litt i manualen om det. :)

Skrevet (endret)

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
Skrevet

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

Skrevet
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.

Skrevet
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.

Skrevet
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);

}

}

Skrevet

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 ;)

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

7467994[/snapback]

 

Lettere å sende inn en patch på zend engine 2 til PHP-mailing-listen, så du får støtte for dette i PHP 5.2.x elns. :)

Skrevet

Mangler "litt" C-kunnskaper til akkurat det, noe sier meg at det og vil ta litt tid å utbedre måten funksjonssignaturen lages på og det må testes og herjes med en god del.

Skrevet
noe sier meg at det og vil ta litt tid å utbedre måten funksjonssignaturen lages på og det må testes og herjes med en god del.
Er redd for det, ja...
Skrevet
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 ?

Skrevet

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?

Skrevet (endret)
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
Skrevet (endret)

jorgis: takk! genialt!

'

edit: lurer på en annen ting, er det mulig å lage en funksjon med uendelige argumenter? som unset

Endret av MC2
Skrevet (endret)

public static myMethod() mente du vel? :p

 

En statisk metode kan ikke bruke $this og kan kun kalles statisk, dvs dette går ikke:

$foo = new Spam();
$foo->myMethod();

 

dette derimot går:

Spam::myMethod();

Endret av dabear

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...