1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | class foo { public function bar($v = '') { static $value; if (!$v) { return $value; } $value = $v; // enz enz } } $henk = new foo(); $piet = new foo(); $henk->bar('Dit is een test'); $piet->bar('En dit is een tweede test'); echo $henk->bar() . '<br>'; echo $piet->bar(); /* Huidige Output: En dit is een tweede test En dit is een tweede test Naar mijn idee verwachte output: Dit is een test En dit is een tweede test */ ?> |
Dan zou het huidige gedrag verwacht zijn.. Het zijn, vind ik, lokale variabelen van een method.quote:Op donderdag 20 september 2007 10:35 schreef markiemark het volgende:
en wat nou als je er private van maakt?
Ik heb een class die het een en ander uitrekent / controleert (best zware berekeningen). Hij roept van al zijn members een method aan. De bedoeling was dan dat deze method zijn resultaat opslaat, zodat hij dat maar 1x hoeft te rekenen.. Ik kan het later dan direct opvragen. Doorgeslagen optimalisatie, wellicht.quote:Op donderdag 20 september 2007 11:01 schreef JeRa het volgende:
@Arjan321
Ik ben met je eens dat het enigzins onlogisch is. Maar waarom zou je in vredesnaam zo'n constructie gebruiken?
Ja precies. Ik zou helemaal met dit gedrag eens zijn, als ik de variabele gedeclareerd zou hebben als een class member.. wat ik, naar mijn inziens, niet doe..quote:Jouw static variabele is eigenlijk gewoon een class member. Zoals jij ze nu gebruikt zou je ze buiten OOP gebruiken, in losse functies bijvoorbeeld.
Of het wel of niet doorgeslagen is maakt niet zoveel uit, het gaat erom dat het niet doet wat je ervan verwacht. Ik kan het denk ik wel verklaren; de methodes van een object zijn de methodes van een class en alleen voor de class members wordt bij een nieuw object geheugen vrijgemaakt om gegevens op te slaan.quote:Op donderdag 20 september 2007 15:28 schreef Arjan321 het volgende:
Ik heb een class die het een en ander uitrekent / controleert (best zware berekeningen). Hij roept van al zijn members een method aan. De bedoeling was dan dat deze method zijn resultaat opslaat, zodat hij dat maar 1x hoeft te rekenen.. Ik kan het later dan direct opvragen. Doorgeslagen optimalisatie, wellicht.
ANSI-C is uiteraard snel te zeggen, die ondersteund geen klasses.. heerlijke tijdenquote:Op donderdag 20 september 2007 16:15 schreef JeRa het volgende:
[..]
Of het wel of niet doorgeslagen is maakt niet zoveel uit, het gaat erom dat het niet doet wat je ervan verwacht. Ik kan het denk ik wel verklaren; de methodes van een object zijn de methodes van een class en alleen voor de class members wordt bij een nieuw object geheugen vrijgemaakt om gegevens op te slaan.
Static variabelen in een functie zijn zichtbaar voor en blijven in de scope van die functie zolang de functie blijft bestaan. Aangezien je zodra je een class definieert ook de functies aanmaakt, heb je maar één static variabele voor alle instanties van die class.
Hoe het in C/C++ en andere talen werkt weet ik niet, maar dit lijkt me de meest logische verklaring. Maar wat is er mis met deze methode, welke ik persoonlijk niet eens lelijk vind?
[ code verwijderd ]
1 2 3 4 5 6 7 8 | <minimumtemperatuur>14</minimumtemperatuur> <maximumtemperatuur>20</maximumtemperatuur> <windrichting>zw</windrichting> <windsnelheid>3-5</windsnelheid> <weersymbool>C</weersymbool> <weersomschrijving>zwaar bewolkt</weersomschrijving> </Verwachting> |
1 2 3 4 5 6 7 8 9 | $inhoud = explode('<verwachting>', $inhoud); $teller = 0; foreach($inhoud as $verwachting) { $teller++; } echo $teller; |
Op die manier gaat het inderdaad niet lukken. Ten eerste staat er een hoofdletter in het begin van Verwachting en ten tweede staat er meer info in. Explode werkt met exact strings. Met PHP kun je xml parsen. http://nl3.php.net/xmlquote:Op donderdag 20 september 2007 20:14 schreef broodmonkeh het volgende:
Ik heb een probleempje met het uitlezen van data uit een xml bestand. Het XML bestand is als volgt:
[ code verwijderd ]
En dat dan 5 keer. Al wil ik echter met de volgende code de data eruit halen dan werkt het niet: (in de code staat nu een teller , en die telt er maar 1 ipv 5.)
[ code verwijderd ]
Weet iemand wat het probleem is? Ik denk zelf omdat er ook de dag en maand enz. in de <verwachting> tag staat. Hoe los ik dit op?
1 |
dan moet je de verhouding uitrekenen en daarmee kan je alles herberekenen.quote:Op zaterdag 22 september 2007 15:15 schreef Chandler het volgende:
Ik heb een leuk berekenings vraagje
Voor een site wil ik gaan werken met een template voor afbeeldingen. Deze template is alleen de 'border' rondom het plaatje. Nu heeft deze rare maten.
normaal = 121 x 92
klein = 92 x 69
Hoe kan ik zorgen dat alle afbeeldingen er juist in komen te staan qua verkleining? anyone?
ps en dan voor te stellen dat een afbeelding bv
640x480
800x600
1024x800
etc zijn?
Met bijvoorbeeld PHPThumb de afbeeldingen herschalen en automatisch het overtollige gedeelte laten wegsnijden.quote:Op zaterdag 22 september 2007 15:15 schreef Chandler het volgende:
Ik heb een leuk berekenings vraagje
Voor een site wil ik gaan werken met een template voor afbeeldingen. Deze template is alleen de 'border' rondom het plaatje. Nu heeft deze rare maten.
normaal = 121 x 92
klein = 92 x 69
Hoe kan ik zorgen dat alle afbeeldingen er juist in komen te staan qua verkleining? anyone?
ps en dan voor te stellen dat een afbeelding bv
640x480
800x600
1024x800
etc zijn?
1 2 3 4 5 6 7 | Warning: disk_total_space() [function.disk-total-space]: The filename, directory name, or volume label syntax is incorrect. in C:wwwtorrentfluxfunctions.php on line 874 Warning: disk_free_space() [function.disk-free-space]: The filename, directory name, or volume label syntax is incorrect. in C:wwwtorrentfluxfunctions.php on line 875 Warning: Division by zero in C:wwwtorrentfluxfunctions.php on line 878 |
Er zijn allerlei libs verkrijgbaar om afbeeldingen op deze gewenste manier te bewerken, maar je kunt het zelf ook vrij eenvoudig doen met behulp van de standaard GD2 functies. Het komt er dan op neer dat je de afbeelding verkleind en eventueel de gewenste uitsnede maakt.quote:Op zaterdag 22 september 2007 15:15 schreef Chandler het volgende:
Ik heb een leuk berekenings vraagje
Voor een site wil ik gaan werken met een template voor afbeeldingen. Deze template is alleen de 'border' rondom het plaatje. Nu heeft deze rare maten.
normaal = 121 x 92
klein = 92 x 69
Hoe kan ik zorgen dat alle afbeeldingen er juist in komen te staan qua verkleining? anyone?
ps en dan voor te stellen dat een afbeelding bv
640x480
800x600
1024x800
etc zijn?
Ja, maar daar is vrij weinig aan te doen als je alle thumbs in landscape wilt hebben. Je zou de portrait-foto's zo kunnen snijden dat ze als landscape-thumb te zien worden, maar dan zul je onder en boven veel moeten wegknippen. Bij sommige foto's geen probleem, bij andere weer niet.quote:Op zaterdag 22 september 2007 17:14 schreef Chandler het volgende:
Ja maar overtollig is niet altijd handig hé.
Ik heb even wat voorbeelden gemaakt.
[afbeelding]
.
[afbeelding]
.
[afbeelding]
.
[afbeelding]
.
[afbeelding]
.
[afbeelding]
.
[afbeelding]
.
[afbeelding]
maar vind vooral afbeelding 2 en 4 niet mooi. Wanneer ik ga snijden in deze foto's ziet het er helemaal niet meer uit juist omdat de afbeeldingen dan echt een groot stuk missen
ps, ik ben niet een van de gozerts op deze afbeeldingenecht niet
Volgens mij heeft het niets met rechten te maken, in windows heb je vrijwel alle rechten (behalve indien anders ingesteld) om te schrijven.quote:Op zondag 23 september 2007 10:48 schreef G.Fawkes het volgende:
Ik gebruik wamp om torrentflux te gebruiken. Nu moet er buiten de www map weggeschreven worden. En omdat die waarschijnlijk niet kan, krijg ik deze foutmeldingen:
[ code verwijderd ]
Ik heb geprobeerd om via windows verkenner de read-only rights weg te halen maar daar heeft het blijkbaar niet veel mee te maken...
Heb je de config van torenflux aangepast? Of post hem hier ffquote:Op zondag 23 september 2007 10:48 schreef G.Fawkes het volgende:
Ik gebruik wamp om torrentflux te gebruiken. Nu moet er buiten de www map weggeschreven worden. En omdat die waarschijnlijk niet kan, krijg ik deze foutmeldingen:
[ code verwijderd ]
Ik heb geprobeerd om via windows verkenner de read-only rights weg te halen maar daar heeft het blijkbaar niet veel mee te maken...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | for ($i = 1; $i <= 1; $i++) { //De pagina openen $handle = file_get_contents("http://www.queenconcerts.com/detail/live/".$i."/"); //De titel opzoeken preg_match_all('/<caption>(.*?)</caption>/', $handle , $matches); //De : uit de titel halen en vervangen omdat Windows zeurt $filename = preg_replace('/:/',' =',$matches[0][0]); //Inhoud wegschrijven naar bestand fwrite($matches[0][0].".html", file_get_contents("http://www.queenconcerts.com/detail/live/".$i."/")); //Link sluiten fclose($handle); } ?> |
1 2 3 | Warning: fclose(): supplied argument is not a valid stream resource in C:webwwwhomequ63Queenconcertsindex.php on line 12 |
Lees deze eens doorquote:Op zondag 23 september 2007 15:02 schreef qu63 het volgende:
Mijn script:
[ code verwijderd ]
Mijn foutmeldingen:
[ code verwijderd ]
Wat klopt er dan niet?
Dat had ik al gedaan, toen kwam ik er niet meer uit en probeerde ik het hierquote:Op zondag 23 september 2007 15:06 schreef WyriHaximus het volgende:
[..]
Lees deze eens door.:
http://nl3.php.net/fopen
http://nl3.php.net/fwrite
http://nl3.php.net/fclose
In ieder geval klopt de $handle variabele niet. Fclose() verwacht een file handle, maar file_get_contents() geeft geen file handle terug, maar een string. Waarschijnlijk heeft ook de fout met fwrite() hier mee te maken.quote:Op zondag 23 september 2007 15:02 schreef qu63 het volgende:
Mijn script:
[ code verwijderd ]
Mijn foutmeldingen:
[ code verwijderd ]
Wat klopt er dan niet?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |