PHP 6: hoe en wat?

Door PHP erik, 20 jaar geleden, 115.585x bekeken

Wat kunnen we van PHP 6 gaan verwachten? De grote schoonmaak is begonnen! Weg met magic_quotes, register_globals, safe_mode en mysql_query()! En welkom namespaces en label/goto. Begin nu al je scripts veilig en logisch te maken!

Gesponsorde koppelingen

Inhoudsopgave

  1. Installatie PHP 6 naast PHP 5
  2. Inleiding
  3. Bye@ Register_globals, magic_quotes, mysql_query()
  4. Namespaces (vanaf PHP 5.3)
  5. Label en goto
  6. Verkorte ifsetor() (vanaf PHP 5.3)
  7. Static keyword (vanaf PHP 5.3?)

 

Er zijn 111 reacties op 'Php 6 hoe en wat'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Terence Hersbach
Terence Hersbach
20 jaar geleden
 
0 +1 -0 -1
geil! goede tut, en ik kan niet wachten tot php 6 er is.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Ik ook niet. Alleen het wordt wel een drama voor 99% van de PHPhulp-programmeurs, daarom probeer ik men er nu al op te attenderen.
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Deze versie wordt echt cool, vooral dat je 'gedwongen' wordt om PDO te gebruiken en die namespaces is een goede toevoeging. Ik ben ook heel blij dat ze label en goto erin hebben gestop.

Go PHP development team! Go! :)
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Het is ook maar goed dat men gedwongen wordt PDO te gebruiken. Stel dat mysql_query() nog zou werken, dan zouden er 1 miljoen scripts straks volledig lek zijn (SQL injection) zonder dat men er bewust van is. Met het verwijderen van magic_quotes zal dus ook wel PDO afgedwongen moeten worden, anders wordt het ??n groot drama. Hopelijk gaan de webhostingbedrijven niet de extensies aanzetten waardoor het alsnog werkt. Maar we spreken hier nu toch over +/- 2010 voordat hosts overstappen denk ik.
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Inderdaad, het wordt dus nog effe wachten.
- -
- -
20 jaar geleden
 
0 +1 -0 -1
De tut is tot zover prima, mijn complimenten, maar hij zal wel wat uitgebreid moeten worden (zoals je op MSN zei).
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
Voor die mensen die alvast uitkijken naar die nieuwe ?: notatie, hier is een simpel trucje om nu al iets vergelijkbaars te doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
function ifset(&$a, $b) {
   return isset($a) ? $a : $b;
}


$waarde = ifset($_POST['koe'], 'boe');
?>


Verder heb ik gelezen dat het 'static' keyword in PHP6 ook anders gaat werken in klassen. Zo zou die nu verwijzen naar de actieve klasse (de klasse waarvandaan je hem aanroept) in plaats van de klasse waar de static method/var in is gedefinieerd.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Jelmer, dat is toevallig, ik was het net aan het aanpassen. Ik was vergeten te melden van de ifsetor(). Ook heb ik even een fout hersteld. Hij geeft namelijk wel de verwachte werking, maar ook een onverwachte notice, en dat zou niet moeten. Dus hij is nog steeds een beetje buggy vanwege de notice. Bedankt voor je reactie, je hebt me even wakker geschud dat het natuurlijk gaat over isset() en niet over andere vergelijkingen. Althans, er staat op PHP.net (bijna?) niets over beschreven, maar dat is het idee.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
declare(encoding = 'utf-8');
?>

Ook nieuw in PHP 6 (vergeten, kan geen pagina meer toevoegen)
Terence Hersbach
Terence Hersbach
20 jaar geleden
 
0 +1 -0 -1
en was het trouwens niet zo dat mysql mysqli word? zoiets tegengekomen..

ff zoeken..

http://www.phphulp.nl/php/tutorials/8/533/ staat het wel beschreven, blijkt dat mysqli gewoon blijft dus.
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Quote:
mysql_query() weg
[wat tekst]
Hetzelfde geldt voor mysqli_*!!!


Betekent dit dat net zoals mysql, mysqli ook alleen maar via een extentie erbij komt in PHP6?
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Correctie: mysqli blijft gewoon een extensie, zoals nu. Maar het zit niet standaard in je PHP. Ik zou gewoon PDO gebruiken, geen reden voor mysqli.

Quote:
en was het trouwens niet zo dat mysql mysqli word? zoiets tegengekomen..
Nee dus. Ik had het al aangepast in de tut, maar dat heb jij waarschijnlijk niet gezien.

Quote:
http://www.phphulp.nl/php/tutorials/8/533/ staat het wel beschreven, blijkt dat mysqli gewoon blijft dus.
mysqli is op dit moment een extensie en dat zal het blijven en die zal mogelijk standaard wel aan staan bij veel hosts.

Feitelijk verandert er hierbij niets, mysqli is nu ook een extensie, maar het is beter om gewoon naar de standaard PDO te gaan.

Er zijn wat dingen toegevoegd en veranderd in de loop der uren in deze tutorial, bekijk even de laatste 2 pagina's opnieuw :). Late static binding ook toegevoegd.
Nicoow Unknown
Nicoow Unknown
20 jaar geleden
 
0 +1 -0 -1
eigenlijk word het dus tijd voor een flinke omscholing :P
en dan ga ik ook meteen op zoek naar een host met php6, zodat ik ook zeker weet dat ik dat ga scripten.
Ik denk namelijk dat als je meteen begint met php6 scripten, dat je dan over een jaar of 2 een voordeel hebt op de rest van de programeurs, die php5 zijn blijven programeren (net zoals de mensen die nu nog php4 gebruiken.)
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
PHP 6 is nog niet echt uit h?, dus het is niet aan te raden hier serieus projecten mee te maken. Daar zul je nog minimaal een aantal maanden op moeten wachten, misschien wel meer dan een jaar.

Als je gewoon goed PHP 5 programmeert dan is er geen verschil met PHP 6 eigenlijk. Al mijn scripts zullen zo prima werken op PHP 6 zonder 1 aanpassing. Dus als je dat gewoon weet te bereiken dan is er niks aan de hand en weet je zeker dat je bepaalde dingen goed doet.
Nicoow Unknown
Nicoow Unknown
20 jaar geleden
 
0 +1 -0 -1
dan ga ik eerst maar eens hard aan de slag met PDO, want dat is t grootste probleem waar ik waarschijnlijk tegenaan ga lopen.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
PDO heb je binnen een paar uur wel volledig onder de knie :). Zie die tutorial van Blanche waar ik ook naar link in deze tutorial. En op het forum kun je altijd dingen vragen.
- -
- -
20 jaar geleden
 
0 +1 -0 -1
Een gat in de hostingmarkt: zodra PHP6 uit is het direct aan gaan bieden, en niet pas in 2010 :)

Hele goede tut PHPerik!
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Mooi, het lijkt er dus op dat ik al klaar ben voor versie 6.

De goto haalt wel oude, hele oude, herinneringen op... Doet me denken aan m'n eerste programmeer-avonturen in GWBasic op onze eerste pc, een 8088-machine met maar liefst 256KB geheugen, HD van 20MB en een 5 1/4" floppydrive. Er waren alleen geen spelletjes, dat was wel jammer.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Frank, eindelijk krijgt pgSQL evenveel respect als MySQL, we zouden een PHP 6 fanclub moeten oprichten.

edit: ...ik bedoel dus: dat zouden we moeten doen indien we ons tot een dergelijk niveau willen verlagen, uiteraard.


20 jaar geleden
 
0 +1 -0 -1
Wauw GoTo das idd heel lang geleden. Komt er ook On Error Resume To?

Het stukje alleen PDO gebruiken vind ik overdreven. In principe is MySQLi even goed als PDO. Voordeel van PDO is dat je ook een andere database er aan kan hangen echter kan dit toch weer stuiten op database server verschillen (lees mysql vs firebird bv).

Ik vrees dat bij de invoering van PHP het opeens heel druk gaat worden hier op PHPHulp. Een webhoster moet wel gek zijn om klanten verplicht over te zetten op PHP 6. Het "ontbreken" van de gewone MySQL extensie zal het merendeel van de websites onbruikbaar maken.


edit: Toevoeging: http://php6dev.blogspot.com/
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Toch was het invoeren van superglobals ook een grote stap en heeft nu bijna iedereen superglobals. Het komt wel langzamerhand, het hangt van community's als deze af.
TJVB tvb
TJVB tvb
20 jaar geleden
 
0 +1 -0 -1
Webmakerij, een hoster kan ook zorgen dat beide naast elkaar draaien (tenminste met linux servers)
En dan door middel van extensie (.php6) en eventueel .htaccess zorgen dat je kunt kiezen welke versie je wilt.
Zo heeft de klant de keuze en de tijd om alles over te zetten.
Maar tevens gaat het erom welke service je wilt bieden. En of je het als een uitdaging of juist als een last ziet.

@PHPErik, het is een duidelijke en nette tutorial. Dankjewel!
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
@Webmakerij: Wanneer je nu al over PHP versie 5 met PDO beschikt, dan moet je dus wel heel erg gek zijn wanneer je daar geen gebruik van gaat maken. Je weet dat je straks niet meer met mysql_query() en zijn vriendjes aan de slag kunt.

PDO is nu al beschikbaar en je weet dat je over enkele jaren niet meer zonder kunt. Begin dan n? al met de conversie, dan heb je daar later alleen maar plezier van.

Tip: Maak voor jezelf wat snippets in je IDE aan, dan heb je PDO er zo instaan. Ik hoef in Zend alleen maar 'pdostart' en 'pdoselect' in te kloppen om een verbinding op te zetten en een select-statement aan te maken, incl. foutafhandeling. Query invullen, wat details uitwerken en klaar is kees.


20 jaar geleden
 
0 +1 -0 -1
TJVB een goede hoster draait PHP 6 en PHP 5 gewoon naast elkaar dmv FastCGI en dan keuze per domein.
edit (zinnetje vergeten). Een .php6 extensie is kansloos en onhandig.

pgFrank ik werk ook niet meer met mysql maar met mysqli. Ik vind het alleen zo dat mysqli niet onderdoet in principe voor pdo.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Een .php6 extensie is kansloos en onhandig.
Dat is echt een bullshit-opmerking. Elk degelijk systeem stuurt alle requests door naar ??n index.php (index.php6) en dus maakt het werkelijk geen fuck uit. Maar blijkbaar ben je nog grotendeels procedural bezig.


20 jaar geleden
 
0 +1 -0 -1
Dan zal je je index.php ook moet veranderen naar een php6 of alles op rewrite gooien.
Enige idee waarom we .php4 en .php5 nergens zien? Kennelijk zijn ze niet handig ondanks dat ze vaak wel beschikbaar zijn.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Quote:
Dan zal je je index.php ook moet veranderen naar een php6 of alles op rewrite gooien.
Je hebt blijkbaar geen idee waar het over gaat. Maarja geeft niet, ga eens met MVC werken zou ik zeggen. Dat zal toch wel de standaard worden want PHP jat alles uit C++ en Java. Kijk maar naar phpdocumentor (javadoc), zend framework (java/servlets/jsp/etc), smarty (jsp), namespaces (c++ namespaces, java packages), etc.

Quote:
Enige idee waarom we .php4 en .php5 nergens zien? Kennelijk zijn ze niet handig ondanks dat ze vaak wel beschikbaar zijn.
Nee, dit komt omdat iedereen een host kiest met zijn of haar gewenste versie.

Maar het zal wel een feit blijven dat in het begin alleen veel professionals php6 willen, dat is dus een goede markt voor de webhosts.
Martijn B
Martijn B
20 jaar geleden
 
0 +1 -0 -1
Al ik dit zo allemaal lees is PHP6 een goede vooruitgang.

Maar ik heb toch 2 vragen over dat PDO.

Stel nu dat ik een project ontwikkel speciaal voor een bepaald database systeem. Ik weet de meeste risco's van het handmatig uitvoeren van queries. Hiervoor heb ik dan ook zelf tooltjes gemaakt. Is het gebruik van PDO dan ook nadelig voor de snelheid ten opzichte van b.v. de mysql extensie?

De meestal database systemen hebben eigen toevoegingen/veranderingen op de sql standaarden. Als ik met PDO voor MySQL kies dan kan ik toch niet zonder problemen overstappen op pgSQL?
Robert -
Robert -
20 jaar geleden
 
0 +1 -0 -1
Zo te horen is het allemaal een hele grote vooruitgang.
Zelf was ik ook al bezig kleine dingetjes met pdo te maken, en het werkt fantastisch.

Mooie tutorial in ieder geval PHPerik
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Als je met PDO werkt kun je JUIST van database veranderen door slechts ??n regeltje te veranderen (de database-connectie). Dat is ??n van de belangrijkste doelen van PDO! Alleen als je specifieke functies gebruikt van bepaalde databases dan zul je die wel moeten herschrijven. Daar wordt vaak het MVC-patroon voor gebruikt. In de model doe je simpelweg iets als getNews() en in die functie wordt dan bepaald hoe het nieuws wordt opgehaald. Je kunt dan bij het overstappen naar een andere databases desnoods die klasse extenden zodat je de functies overschrijft die niet cross-database zijn.


20 jaar geleden
 
0 +1 -0 -1
@PHPerik
Ik zal dus nog steeds wijzigingen moet maken om de php6 extensie te gebruiken. Waarom zal ik dan niet gewoon direct via b.v. htaccess kiezen voor PHP6.
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
Straks voor de nieuwe PHPhulp zullen we ook hier rekening mee moeten gaan houden met "nieuwe" scripts. Oude scripts die nog werken met het "REGISTER_GLOBALS" gebeuren, moeten overigens wel uit de database, deze zullen niet meer werken.(of ze moeten herschreven worden)
Omdat PDO al in PHP 5 zit (en een provider die met PHP4 werkt kan echt niet meer, of iig niet als ze geen PHP5 aanbieden)

Voor de veiligheid is het ook een goede zaak, rond 2010 (als het echt ingevoerd wordt) zullen de scripts van "amateurs die ff wat flansen" een stuk veiliger zijn.

Gelukkig zijn er hier ook zat die wel weten hoe het moet, en ook mensen zat die beginnelingen wijzen op de veiligheidslekken die in scriptjes zitten.

Goeie tut Erik, vind het allemaal positieve, goede veranderingen in de nieuwe versie. Eindelijk niet meer van die slecht beveiligde scriptjes, omdat je errors gaat krijgen.Straks voor de nieuwe PHPhulp zullen we ook hier rekening mee moeten gaan houden met "nieuwe" scripts. Oude scripts die nog werken met het "REGISTER_GLOBALS" gebeuren, moeten overigens wel uit de database, deze zullen niet meer werken.(of ze moeten herschreven worden)
Omdat PDO al in PHP 5 zit (en een provider die met PHP4 werkt kan echt niet meer, of iig niet als ze geen PHP5 aanbieden)

Voor de veiligheid is het ook een goede zaak, rond 2010 (als het echt ingevoerd wordt) zullen de scripts van "amateurs die ff wat flansen" een stuk veiliger zijn.

Gelukkig zijn er hier ook zat die wel weten hoe het moet, en ook mensen zat die beginnelingen wijzen op de veiligheidslekken die in scriptjes zitten.

Goeie tut Erik, vind het allemaal positieve, goede veranderingen in de nieuwe versie. Eindelijk niet meer van die slecht beveiligde scriptjes, omdat je errors gaat krijgen.
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Quote:
Als ik met PDO voor MySQL kies dan kan ik toch niet zonder problemen overstappen op pgSQL?
Wanneer jij correcte ANSI-SQL gebruikt, dan hoef je alleen maar de functienamen in SQL aan te passen. pgSQL kent bv. geen functie DATE_FORMAT(), maar TO_CHAR(). Zo heeft iedere database wel zijn eigen namen voor de diverse functies, dat is (helaas) niks bijzonders.

Gebruik je g??n ANSI-SQL, dan wordt het mogelijk een ander verhaal. Dan zou het zo maar kunnen dat je er ineens achterkomt dat jouw systeem stijf staat van de bugs en andere fouten.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT naam, voornaam FROM users GROUP BY voornaam

Dit werkt by default in MySQL (configuratie) ondanks dat de query hartstikke fout is. Wanneer je kiest voor MySQL, hoor je ook te weten dat je jezelf een hoop ellende op de hals haalt. Dat 'iedereen' MySQL gebruikt, is op zich geen reden om dan zelf ook maar van de brug te springen. Zelf nadenken kan geen kwaad.
Kwastie
Kwastie
20 jaar geleden
 
0 +1 -0 -1
ik vindt het nogal raar dat ze alle mysql_* en mysqli_* querys hebben verwijderd, hopelijk zien ze snel in dat dit fout is en voegen ze het opnieuw toe.
Want dan zou iedereen voor een behaalde tijd(2012?) de script geupdate moeten hebben, geloof mij dan wordt het CHAOS op het internet.., vooral de mensen die NIET weten hoe php werkt en of het script zelf gemaakt heeft gaat dit een groot probleem worden, eerst leek mij dat PHP6 alleen maar 'voordelen' had, tot nu dus. Maar er breken dan wel mooie tijden aan voor ons freelancers :) want dan is er een 'chronisch' tekort aan php-ers
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
De mysql_* en mysqli_* functies verdwijnen niet, maar ze zitten niet meer in PHP ingebakken. Er zal een extensie voor geladen moeten worden. Veel hosts zullen dit heel lang blijven doen. We hebben het hier over de verre toekomst want PHP 6 is nog niet eens uit en het duurt rustig 3 of 4 jaar voordat het een beetje geaccepteerd is (PHP 5 is nu ook al 3,5 jaar stabiel te downloaden). Dus dit is juist een heel goed besluit van het PHP team. Je kan niet eeuwig achter blijven vanwege wat amateurscripts die straks niet meer compatible zijn. En de pro's die nog mysql_query() gebriuken upgraden wel.

Lange lijst reacties trouwens hier, dat is mooi!
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
@Kwastie: Ik mag toch hopen dat ze niet de mysql_-ellende er weer in gaan zetten, op die manier hou je de vooruitgang tegen. Gebruik gewoon PDO, wanneer je daar nu mee begint, dan ben je over 5 jaar echt wel klaar.

Ik geloof er niks van dat het een chaos wordt, de php3 scripts (en ouder) zijn ondertussen ook wel zo'n beetje uitgestorven. Hoeveel servers accepteren de REGISTER_GLOBALS nog? Dat zal nu met de overstap naar versie 5 ook snel afnemen, versie 5 wordt een beetje misbruikt om users te pushen deze ellende aan te passen. Ik verwacht met versie 6 hetzelfde te gaan zien.
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
Goto komt weer terug? Tijd voor spaghetti-scripts? Goto kan heel soms handig zijn. Maar naar mijn mening moet je dat zoveel mogelijk vermijden. Een beetje heen en weer springen door je script zal de overzichtelijkheid zeker geen goed doen.
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Mooie tut Erik! Eindelijk wordt het mensen met PHP6 een stuk moeilijker gemaakt om onveilige scripts te schrijven...

Wat betreft het stukje over de installatie van PHP6: WAMP2.0 heeft nu de mogelijkheid om addons toe te voegen waardoor je allerlei verschillende php, apache en mysql versies op je systeem kunt installeren, waaronder php6.0 dev.

Een kwestie van 1 klik op de knop om van php versie te wisselen, nadeel is dan wel weer dat dezelfde root gebruikt wordt. Grote voordeel voor veel mensen zal echter zijn dat het gewoon met een simpele installer geinstalleerd kan worden.

http://www.wampserver.com/en/add-ons.php
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Ik heb het er bij gezet Blanche, bedankt!
Kwastie
Kwastie
20 jaar geleden
 
0 +1 -0 -1
@pgFrank
Wat is er zo fout aan de mysql ellende? naar mijn mening werkt het bijna allemaal hetzelfde, (Mysql, firebird, postsql)

Wel ben ik zeer blij met het verwijderen van magic_quotes & register_global want het geeft meer problemen dan dat het uiteindelijk oplost.Want nu is de taal een stuk professioneler.

Maar ik wil nog wel even melden dat op de site van php duidelijk staat dat register globels word verwijderd, maar er staat niets over dat mysql_query weg gaat.
TJVB tvb
TJVB tvb
20 jaar geleden
 
0 +1 -0 -1
Kwastie pgFrank verwijst meestal naar deze pagina en kan daarnaast nog een heleboel vertellen
@pgFrank (waarom zet je die niet in je profile, nu moest ik even zoeken ;))
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Met PDO ben je niet meer gebonden aan 1 database, met mysql_query() of pg_query() in je code, zul je behalve de betrokken SQL ook alle functies in je php-code moeten aanpassen. En laat de ene set PHP-database-functies nu anders zijn dan de andere, dan kun je waarschijnlijk ook nog logica gaan aanpassen. Zie bv. het verschil tussen het aantal mysql- en pgSQL-functies in PHP. Met PDO heb je 1 set functies in PHP en dat is het dan. Per database kan de SQL dan nog verschillen, maar je hebt een complete scheiding tussen SQL en PHP tot je beschikking. Dat scheelt een enorme berg werk.

De specifieke PHP-functies kennen eveneens geen prepared statements, wat weer problemen/uitdagingen oplevert met beveiliging. Dat is nu net een onderwerp waar veel beginners grote moeite mee hebben.

Het gebruik van 1 database-classe (PDO) door alle PHP-gebruikers, k?n (maar hoeft dus zeker niet...) ook de veiligheid van deze classe ten goede komen. Ik vind het bijzonder handig dat de ?cht php-specialisten zich hiermee bezig houden en dat ik me geen zorgen hoef te maken over de kwaliteit en veiligheid van deze code. Met eigen code weet ik wel wat deze doet, maar om nu een expert in te huren om deze code eens op de pijnbank te leggen, dat is toch weer een ander verhaal. Ik hoop dan ook dat met PDO de professionaliteit van PHP flink omhoog gaat.
Thijs X
Thijs X
20 jaar geleden
 
0 +1 -0 -1
Ah werd tijd dat magic_quotes en register_globals eens verdwenen!
Dat de mysql_* functies verdwijnen heeft ook zn voordelen, kga me maar eens verdiepen in het PDO gebeuren.
Mr D
Mr D
20 jaar geleden
 
0 +1 -0 -1
goede verbeteringen, snap alleen niet waarom ze goto toevoegen. Komt de overzichtelijkheid niet ten goede en is ook totaal overbodig met de OOP mogelijkheden in PHP, het is tenslotte geen assembly code
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Mee eens.
Han eev
Han eev
20 jaar geleden
 
0 +1 -0 -1
Goeie tutorial!
Ik kijk er naar uit. Dit is pas echt goed programmeren ;)
Lijkt me vet!
Marco PHPJunky
Marco PHPJunky
20 jaar geleden
 
0 +1 -0 -1
Geweldige Tutorial!!

Echt geweldig PHP word eindelijk weer "volwassen" (dat was het al geworden met php5)
Maar nu het zelfs namespaces gaan gebruiken net zo als Java & C++ of C#
dan kunnen we er zekker vanuit gaan dat PHP weer hellemaal terug gaat komen in de grote wereld!

Is er al een datum bekend waarop php6 volledig uitkomt ?
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
@Webmakerij

Kan je de tijd nog herinneren dat ze net op sommige servers met PHP 5 begonnen? -> Standaard was nog PHP4 (klanten willen niet verplicht overstappen in een heel korte tijd) Je .php bestanden werden standaard als PHP4 geparsed. Wou je bijvoorbeeld voor een nieuwe pagina php5 gebruiken, gaf je extensie .php5 en dan werkte het goed. Deed je echter .php, werkte het niet.
Je kan wel met een .htacces de boel zo instellen (mocht je geen admin toegang hebben) dat die standaard met de PHP5 werkt. Got it?
Daarom heb je dus die genummerde extensies, om zelf te kunnen kiezen, en niet meteen verplicht over te moeten!
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
@ de personen die menen dat je beter PDO kunt gebruiken dan mysqli:

PDO heeft zijn connectie met mysql database servers (nog) niet helemaal in orde, zo heb je bijvoorbeeld dat een connectie niet goed afgesloten wordt (en dus maar sluit door time-out) en bij servers waar veel mysql connecties gedaan worden zit je na een tijdje (paar minuten) met een database die geen nieuwe connecties meer toelaat (MAX_CONNECTION) en dus werken je scripts niet meer. Dit lijkt mij een grote bug, maar hoop dat dit snel opgelost wordt...

Dus ik gebruik voorlopig mysqli wat op php6 ook wel zal werken...

Edit:
en zijn labels en goto (a.k.a spagetticode) niet verouderd en is OOP niet de nieuwe denkwijze van programmeren? of heb ik het hier zo zwaar fout?
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
@Hipska: Linkje?

Daarnaast werkt mysqli redelijk pet met bv.pgSQL of FireBird...
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
@pgFrank: eigen ondervinding... Het is gewoon zo. Kan bij een enkele versie mysql of pdo zijn hoor. Maar ik had je dit al ergens op phphulp al eens verteld..
Edit:
Gevonden: http://www.phphulp.nl/forum/showtopic.php?id=40500&cat=15&replies=0 zie mijn tweede reactie in dat topic
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
@Hipska: Staat mij ook bij, maar ik kan er in de bugreports van PHP helemaal niks over vinden, er staat niet 1 PDO-gerelateerde bug genoteerd.

Daarnaast heb ik met een pgSQL-connectie de boel al wel eens flink lopen stressen, daarbij zijn geen problemen opgetreden. De boel bleef keurig bereikbaar, ook met maximaal honderd requests per seconde gedurende 1 uur (levert dan een maximaal een paar honderd queries per seconde op). Het probleem dat jij beschrijft, is voor mij niet herkenbaar.

Edit: Ik sluit wel altijd netjes de boel af, wellicht dat daar het verschil zit.
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
wat is dan de 'normale' nette afsluitcode?
Kalle P
Kalle P
20 jaar geleden
 
0 +1 -0 -1
Dat mag php dan ook wel afkijken van java, daar kan je max params meegeven aan db connectie.
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
$db = null;

Dat is hoe ik afsluit, meer dan dat stelt het niet voor. Ik gebruik overigens PHP 5.2.4
Joep
Joep
20 jaar geleden
 
0 +1 -0 -1
Leuek tutorial, alleen jammer van de nutteloze dingen zo te benadrukken.
Namespaces is leuk, maar komt al vanaf 5.3, niks met php6 meer te maken.
Het weghalen van wat instellingen is het enige echte belangrijke wat je hebt vermeld in de tutorial naar mijn mening.
PHP6 is absoluut geen nieuwe tag waard, maar wordt een tag om PHP 4 te doden en terecht.
Het allerbelangrijkste van PHP6 staat er jammer genoeg niet in, terwijl dat de belangrijkste verandering is in jaren van PHP, namelijk unicode support.

Ik ben 2 weken geleden naar een php6 conferentie geweest en iedereen was zeer ontevreden en teleurgesteld over PHP6, vooral niet sinds al 3 belangrijke dingen worden verschoven naar 5.3.

Wat ik miste op de conferentie was de verwijdering van mysql, zou ik je bron hiervan mogen? Ook graag de bron dat het over een paar maanden er misschien al is? Ik denk dat we blij mogen zijn als het nog in 2008 is.

Voor de rest petje af boor het schrijven en de moeite!
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
1. Unicode staat in de reacties (ik had een pagina te weinig aangemaakt), dat is voor de gemiddelde programmeur hier niet het interessantste
2. Dat MySQL niet meer standaard in PHP zit kun je testen en ergens op een todo-list lezen. Er komt hier een extensie voor.
3. Over dat het er over een paar maanden misschien is; dat zou kunnen. Relatief begrip, geen bron voor nodig.

Daarnaast vind ik het apart dat je dit nutteloze dingen noemt. Ik schrijf een tutorial voor de gemiddelde programmeur, niet voor experts of mensen die naar conferenties gaan. Voor deze programmeurs zijn bovenstaande punten toch echt geen nutteloze dingen, maar juist de belangrijkste stappen.

Ik vind je reactie een typische tweakers.net-reactie. Volledig correct en volledig nutteloos. Je komt enkel met subjectieve beweringen zonder onderbouwingen en vraagt zelf naar bronnen. Je voegt feitelijk niets toe, behalve dat we nu weten dat jij op een conferentie bent geweest en iedereen PHP 6 als nutteloze stap ziet. Deze tutorial is objectief dus dat gaat buiten het bereik van deze tutorial. Ik verzoek je dan ook vriendelijk deze subjectieve punten te uiten op conferenties en niet op een forum waar mensen willen leren. Mocht je ze toch willen uiten, doe dat dan in het kader van het verbreden van de algemene kennis en niet als aanval op objectieve gegevens. Daar kan niemand iets mee. De discussie over het nut van PHP 6 mag van mij best gevoerd worden, graag zelfs, maar dan wel op het forum. Bij voorbaat dank.
Joep
Joep
20 jaar geleden
 
0 +1 -0 -1
Dat een tweaker reactie bij voorbaad slecht is kan ik niet snel bij.
Begrijp me niet verkeerd, ik weet dat hier gemiddelde programmeurs komen, daarom wil ik die mensen ook niet lekker maken met een broodjes ei.
De subjectieve beweringen zie ik absoluut niet in mijn commentaar en het is jammer dat je je zo opvat, het vragen naar bronnen is in dit vakgebied naar mijn mening ook een zeer belangrijk feit.
Het verwijzen naar een conferentie was deels voor de uitleg van unicode, ik denk juist dat het erg leuk is, ook voor de gemiddelde programmeur (mening) en deels om mijn onwetenheid van de mysql verwijdering te ondersteunen.
Ik vind het verwijderen van mysql namelijk een erg belangrijk feit en wil daar dus heel graag over lezen, het vragen van de bron was uit interesse en niet om je verhaal te checken.

Buiten alles om jammer dat de tutorial niet voor mensen is die naar conferenties gaan, zo vreemd fenomeen lijkt me dat niet.
In ieder geval excuses als je het verkeerd op heb gepakt, mijn toevoeging was meer bedoeld naar de experts die ook dit forum vaak lezen

Edit: als blijk van goede wil iets wat echt in php 6 komt en voor de gemiddelde phper misschien leuk is om te weten. Vanaf PHP6 wordt het ook mogelijk te foreachen op multi-dimensionale arrays. Voor mij echt een super toevoeging aangezien mijn foreaches in foreaches weleens ziek groot werden :P , voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$aMyArray = array(array(1,2),array(3,4));
foreach($aMyArray as $sKey = > list($val1, $val2))
{
     echo($val1 . ' - ' . $val2);
}


ps. blijven hopen dat mysql wordt verwijderd.. ;)
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Het lijkt er op dat het verplaatsen van de database-functies naar PECL eerst een 'ja' was maar nu toch weer ter discussie staat. Ik verwacht wel dat het zal gebeuren, aangezien je anders te veel lekke scripts krijgt doordat de meeste websites brak zijn geprogrammeerd. Je kunt dit in de todo-list zien van de PHP developers. Voor de tutorial maakt het niet, er staat duidelijk beschreven dat het nog mogelijk zal zijn via een extensie dus men kan zelf besluiten naar PDO te gaan of niet. Ik zal het een beetje aanpassen.

Verder wil ik deze tutorial blijven updaten naarmate er meer duidelijk wordt over PHP 6, want de ontwikkeling is nog bezig.

Het doel van deze tutorial is mensen alvast te laten zien waar men in de toekomst mee te maken krijgt en je ziet dat nu heel veel mensen eens gaan kijken naar PDO en dat soort functies. Dat doel is bereikt.

Sorry voor m'n verdediging Joep maar het kwam over als een 'ik weerleg even alles'-reactie die in dit soort gevallen vrij makkelijk zijn, aangezien alles nog onder voorbehoud is.

Edit: dat soort dingen zoals die foreach zou ik graag toevoegen aan de tutorial, ik zal Bas vragen of hij pagina's kan aanmaken om het uit te breiden. Misschien flauw, maar heb je daar toevallig een bron van? Dan kan ik er een stukje tekst over schrijven. Als jij anders een pagina zou willen schrijven Joep dan nodig ik je daar bij deze voor uit, dan voeg ik die via Bas toe en link in op die pagina naar jouw profiel. Dan hebben we het tenminste centraal staan.
Wouter K
Wouter K
20 jaar geleden
 
0 +1 -0 -1
mooie tut
Joep
Joep
20 jaar geleden
 
0 +1 -0 -1
Hey Erik, staat in de dev meeting..
http://www.php.net/~derick/meeting-notes.html
ook op phpbuilder enzo..
Wil er graag wat over schrijven, dan schrijf ik er misschien meteen een old en new stukje bij, dan is het misschien zelfs nog interessant voor mensen die nog niet veel met foreach werkten.
mvg Joep
Takke
takke
20 jaar geleden
 
0 +1 -0 -1
Is er voor ons beginners een duidelijke lijst van wat wel en wat zeker echt totaal maar dan ook helemaal niet meer voorkomende scripts zullen zijn.

Ik hoor het graag want ben net goed opweg gebruikte ook al de register globals niet.. wat er nu voor mij nieuw uitziet is de PDO voor sql....

Ik kan aan de slag....

Bedankt voor de info
Joep
Joep
20 jaar geleden
 
0 +1 -0 -1
Hey Endy geen paniek, het duurt allemaal nog eventje voor het misschien verdwijnt.
Het werken met PDO is zeker iets wat je je volgende stap mag noemen, net zoals register_globals ;)
Voor de rest valt het op zich wel mee, maar wat Erik in deze tut schrijft zijn zeker wel de belangrijkste dingen die beginners en of php4 gebruikers moeten weten
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
Ik voorspel dat unicode nog wel wat "problemen" hier en daar gaat opleveren, zeker waneer je binair, of met sockets werkt. strlen() is plotseling veel minder vanzelfsprekend. Gelukkig is er (al in PHP5.3 meen ik mij te herinneren) het bin type toegevoegd, zodat je strings als niet-utf8 kan typecasten, zodat ze precies hetzelfde werken als dat ze nu doen. Wordt nog interessant denk ik. (Plak me niet vast op de details, ik meende dit gelezen te hebben, kan zo snel niet de bron terugvinden)

Wat ik eigenlijk nog altijd wel eens zou willen zien is een alternatieve notatie voor create_function. Zeg maar een beetje meer a la javascript, al zullen de closures het nooit halen, maar daar kan ik mee leven. Het lijkt me mooi als er een soort Javascript & Ruby on Rails achtige notatie mogelijk is, waarbij je veel meer werkt met callbacks dan met lussen. Al is het voor de mensen die dat zoeken misschien wel gewoon beter over te stappen. En toch zou ik anonieme functies zonder eval-trekjes nog altijd een leuke toevoeging vinden.

Er komt trouwens met 5.3 al een nieuwe mysql-driver, mysqlnd. Volgens de maker (opschepper?) is die aanzienlijk sneller, en kan je hem compleet naar eigen wens optimaliseren. Klinkt als een leuk iets voor de grote sites die met MySQL werken.
Kalle P
Kalle P
20 jaar geleden
 
0 +1 -0 -1
@Joep
Als je je foreach als een recursieve functie schreef + een if op is_array, dan viel de lengte heel erg mee bij 2d arrays.
Jurgen assaasas
Jurgen assaasas
20 jaar geleden
 
0 +1 -0 -1
Ik zie hier een enorme verbetering. Ik werk al vanaf dat PHP5 uitkwam maar eigenlijk nooit met OOP/PDO gewerkt(op wat kleine voorbeeldjes na). Ik zal dus eens gaan beginnen met OOP/PDO straks. Ik snap eigenlijk nog niet helemaal het MVC principe maar dit is denk ik meer iets om een topic over te openen.
 
0 +1 -0 -1
Het meeste is nog wat ingewikkeld voor me(geen php-opleiding gehad, nog niet iig) Maar die label en goto is wel grappig :P ken ik ook al van mijn rekenamachine :P.
Darkwing Duck
Darkwing Duck
20 jaar geleden
 
0 +1 -0 -1
goto is een mooie toevoeging, gebruik ik als sinds Qbasic. (waar is de tijd :P)
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
goto is juist een achterlijke implementatie naar mijn mening..
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Inderdaad, goto hell zou ik zeggen... Met if-else en try-catch kun je alles doen wat nodig is en heb je echt geen goto nodig. Ik vrees dat de goto weer uitdraait op spagetti code, dat was ook de reden waarom goto was verdwenen.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Ik heb 4 of 5 jaar geleden een keer gedacht van: iets van goto zou handig zijn. Dat zegt genoeg, toen was ik nog een beginner. Nu gaat het alleen maar leiden tot dramatische, onoverzichtelijke code dat niet meer te debuggen is. PHP heeft duidelijk de keuze gemaakt zich steeds minder te interesseren in beginners en het niveau van beginners; men gaat er vanuit dat je goed snapt dat je zoiets alleen heel voorzichtig moet gebruiken. Zelfde verhaal met het verwijderen van magic_quotes, men gaat er vanuit dat je het zelf beveiligt. In de praktijk gaat dit heel veel problemen opleveren, maar dat is niet de fout van PHP maar van de programmeur. Het wordt in ieder geval een interessante toekomst. Het probleem is namelijk dat de meeste PHP programmeurs (amateurs) geen ervaring hebben met andere programmeertalen en kinderen tussen de 12 en 18 zijn. Bijna die hele groep krijgt een probleem. Ik kan er zelf wel om lachen, want over 5 jaar gaan potenti?le klanten alleen nog maar naar professionals omdat de anderen duidelijk geen kennis van beveiliging hebben. Het zou ook kunnen dat iedereen juist beter wordt en de beveiliging beter wordt, maar dat zal wel wat jaartjes duren. We wachten af...
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
Hmm, is magic_quotes er niet juist uitgehaald omdat het de horror van addslashes met zich meebracht? Daarnaast lijkt met mij met PDO & statements niet langer nodig om na te denken over escapen, althans, zolang mensen niet PDO::query gaan gebruiken.

Nu nog een vergelijkbare oplossing voor HTML om XSS te voorkomen, of een soort van ingebakken HTML purifier en alle standaard lekken zijn zo'n beetje gedicht. En daarmee wordt het leven weer wat makkelijker, juist voor de beginners.
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
@Jelmer: Je kunt met PDO::quote de boel correct escapen, dan kun je dus alsnog PDO::query op een veilige manier gebruiken. Ik kan het alleen niemand aanraden, een prepared statement is veiliger en kun je meer mee.
Davy Jansen
Davy Jansen
20 jaar geleden
 
0 +1 -0 -1
Ik zag heel toevallig op phpfreakz, een ander bericht voor bijkomen.
Hier zijn de meeste 'profs' iets minder te spreken over PDO?

Je moet het zelf maar ff lezen:
-> http://www.phpfreakz.nl/forum.php?forum=1&iid=1081337
Gerben Jacobs
Gerben Jacobs
20 jaar geleden
 
0 +1 -0 -1
Ik vind dat GOTO en label verhaal ook een beetje onzin.
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
Namespaces zijn ook nog niet helemaal helder volgens mij. Zie dit voorbeeld waarbij en meerdere klassen zijn met dezelfde naam, maar een andere namespace. (voor de goede orde, DateTime is al een bestaande klasse, in de ::-namespace, de global namespace.) Komt nog niet echt overeen met het KISS-principe van PHP naar mijn idee.

Als ze nu gewoon dezelfde methode als Javascript, namelijk met 'with(namespace) { commando's }' hadden gebruikt, was het allemaal zoveel simpeler geweest :P

edit: En de dag daarop post diegene die eerst klaagde over de namespaces een verklaring, waardoor het allemaal weer wat helderder wordt. Valt dus allemaal wel weer mee :)
Max Waterman
Max Waterman
20 jaar geleden
 
0 +1 -0 -1
Wordt er nog wat veranderd ten aanzien van types van variabelen en functies? Dat PHP een weak-typed taal is heb ik altijd wel als een minpuntje ervaren. Je zou gewoon type's moeten kunnen declareren, bijvoorbeeld zo:

public boolean $isMale;

of in een methode/functie:

public function int getAge() {
//...
}

of zo:

public int function getAge() {
//...
}

Dat staat veel mooier dan een variabele waar je zowat alles in kan opslaan. Ik had gehoopt dat dat er met PHP 6 eindelijk in zou komen.

Het liefst had ik ook gezien dat ze dat hele function keyword eruit slopen. Gewoon Java style. Dat programmeert mijns inziens het beste.

Dat goto/label verhaal vind ik echt onzin. Enorm lelijk om dat te gebruiken. Zoals meer mensen hierboven hebben gezegd is het met de bestaande control structures (if, else etc..) prima mogelijk om alle denkbare programmeerstructuren te realiseren.
Lode
Lode
20 jaar geleden
 
0 +1 -0 -1
Ik denk dat we eerst eens moeten gaan kijken naar php5.3 met alle veranderingen voordat we naar 6 gaan...

namespaces, mysqlnld, static magic functions... Is al een hele stap in de richting... Om over de rest nog maar te zwijgen...

Uiteraard blijven we het nieuws volgen en anticipeer ik me alvast...
Emmanuel Delay
Emmanuel Delay
20 jaar geleden
 
0 +1 -0 -1
@Max Waterman:
Alsof je mijn gedachten kon lezen.

Verder ben ik wel positief.
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
Spl_Types geeft je static typing, maar dan zonder de syntax sugar. Dan moet je maar in Java gaan programmeren...
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Het zou ideaal zijn als je net als in Java de types ook overal kan aangeven. Net als dat je public function foo(Type $foo) kan doen; dat zou ik overal willen.

Voordeel van PHP t.o.v. Java vind ik dat je vrij snel en makkelijk kan testen en debuggen en dat je niet voor ??n simpel dingetje altijd 30 objecten nodig hebt (moet je maar eens kijken hoe bijv. SOAP werkt in Java). Maar het hele type(loos)-verhaal in PHP is wel het grootste nadeel, sowieso. Vooral in organisaties waar je met meer dan ??n persoon aan een project werkt is het hel als je niet weet wat voor type een variabele is.
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Inderdaad, je moet maar aannemen dat $email ook daadwerkelijk een string bevat en niet een of andere integer. PHP slikt dat gewoon, maar Java e.d. zullen huilen als een baby!
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
Inderdaad, je moet met de naamgeving van je variabelen in een groot project rekening houden met misverstanden die kunnen ontstaan. Eenduidige en duidelijke naamgeving dragen daar nu toe bij. Overigens verandert dat niet perse wanneer je nu wel "type-casting" toepast. De waarde moet wel een integer zijn, maar iemand komt daarachter door:
- op te zoeken waar die variabele gecast is
- door te proberen de fout te bekijken
- hopelijk tzt dat een programma ook meteen aangeeft welk type het is
- vragen aan degene die die variabele voor het eerst heeft gebruikt

Dus ook dan blijft de naamgeving nog belangrijk, gewoon omdat het veel eenvoudiger is als je in 1 oogopslag ziet wat voor variabele type het is.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
In Java pas je ook geen type casting toe. Je moet gewoon verplicht het type aangeven bij het defini?ren van een variabele. Zo kan ook je IDE meteen achterhalen wat het is en hoe het werkt. Dus je cast 'm niet, je kunt geen ander type aan de variabele geven. Je merkt bij Java bij het compileren dus al of alles goed gaat, omdat alle types moeten kloppen.

Je kunt in Java ook wel type casten, maar dat heeft hier niets mee te maken.
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
Naja, dat was wat ik bedoelde, sorry voor de verkeerde naamgeving, maar het verhaal is wel duidelijk denk ik. Wanneer je met meer mensen aan een project werkt, zal je gewoon ook duidelijke namen moeten geven.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Nee maar jij zegt dat je dan nog steeds moet kijken waar de variabele vandaan komt, terwijl dit juist direct duidelijk is. Er is geen misverstand over types meer. Ja heel af en toe
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Ik zat te denken he, waar gebruik je nou 'goto' voor? Ik denk dat ik het meer zal gebruiken in plaats van een switch... Dat lijkt me ook wel handig, maar zeker niet een must-have.
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
@Erik
Ik noem ook de optie dat de tool gewoon aangeeft wat voor type het is, als je nu een integer in een variabele zet, dan zie je dat niet als je de variabele aanroept, of wil veranderen. Dat moet dan wel gebeuren.
Het is ook sneller als je meteen ziet wat voor type inhoud je var moet hebben toch, of zit ik nu gewoon helemaal in een verkeerde denkrichting?

@Gamer
Goto in plaats van een switch? Niet doen, je krijgt dan wel heel rare constructies, onderstaand is een fictief voorbeeld, maar dan is een switch toch veel handiger:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if('blaat'){
  goto 'ikke';
  }

else{
  goto 'jij';
  }

jij:
  'voerdituit';
   break;
ikke:
   'voerdatuit';
   break;
?>
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Kan de label naam achter goto niet variabel zijn?

Zoiets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$iets
= 'blabla';
goto $iets;

blabla:
    echo 'Blabla is gebruikt!';
    break;
yadayada:
    echo 'Yada yada has been used!';
    break;[/code]
Eddy E
Eddy E
20 jaar geleden
 
0 +1 -0 -1
Hoe reageert php op dit?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
begin:
  echo 'We zijn aan het begin';
  // en nog meer

goto begin;
exit();
?>


Oneindige loop?
Kalle P
Kalle P
20 jaar geleden
 
Zulke constructies kan je in alle programmeertalen maken en ook in php op andere manieren een oneindige loop. Je browser zal na enige tijd kappen tenminste ff. Met een redirect naar redirect bv ook, ff geeft dan gelijk aan dat er een oneindige loop plaatst vindt en dus kapt ie t af.

Zeker weet je t natuurlijk niet, maar het lijkt me gewoon de verantwoordelijkheid van de programmeur.
Joey Drieling
Joey Drieling
19 jaar geleden
 
0 +1 -0 -1
Halo ik haal nu nog alles uit mijn database met mysql_*() functies, zou ik dit nu al om zetten in pdo zo dat het dan zeker ook werkt in php 6.
--
--
19 jaar geleden
 
0 +1 -0 -1
Dat kun je doen, alleen PHP 6 is nog een eind weg.
Je kunt ook kijken naar mysqli. Dan heb je je systeem zo omgebouwd.
Joey Drieling
Joey Drieling
19 jaar geleden
 
0 +1 -0 -1
blijft mysqli wel bestaan bij php 6?
--
--
19 jaar geleden
 
0 +1 -0 -1
Tuurlijk, daar is ie juist voor.
Matthias R
Matthias R
18 jaar geleden
 
0 +1 -0 -1
en ik snap nu al niks van die OOP :(:(:(::(:((
en ze gaan er nog mee zitten kl*te :(:(::(:(
GaMer B
GaMer B
18 jaar geleden
 
0 +1 -0 -1
@Matthias, does even rustig aan <_<
Matthias R
Matthias R
18 jaar geleden
 
0 +1 -0 -1
sorry :p

Maar die goto en label is zeeeer handig

Op mijn texas TI-84 rekenmachine is dit ook :p
Die gebruikt ook een soort scripting taal :p


Kvind het zeeeer sweet
Jelmer -
Jelmer -
18 jaar geleden
 
0 +1 -0 -1
Goto is heel gevaarlijk anders http://xkcd.com/292/
Matthias R
Matthias R
18 jaar geleden
 
0 +1 -0 -1
wtf xDD
GaMer B
GaMer B
18 jaar geleden
 
0 +1 -0 -1
@Matthias, ik zou het niet uitproberen. Heb een paar uur op de intensive-care door moeten brengen...

Nooit meer!
Afra ca
Afra ca
18 jaar geleden
 
0 +1 -0 -1
@ goto discussie:

Het ontbreken van GOTO in php werd door velen als heel prima beschouwt omdat het mensen duidelijk en overzichtelijk leert scripten. Het zomaar "hoppen" door het script is verre van ideaal, en komt het script zeker niet ten goede.

@ comic Jelmer:

Nice :D
Wesley Overdijk
wesley Overdijk
18 jaar geleden
 
0 +1 -0 -1
omg... ik ben zo zwaar aan het stressen nu. ik heb flink wat projecten draaien, waar ik mysql gebruik, dat kan ik onmogelijk omzetten! en as $_POST $_GET etc verdwijnt, waar haal ik die waardes dan vandaan?
Afra ca
Afra ca
18 jaar geleden
 
0 +1 -0 -1
Er vanuit gaande dat sommige webhosts nu nog 4.x durven te draaien, zou ik me niet gek veel zorgen maken Wesley ;) Voor nieuwe projecten is het uiteraard leuk als je gelijk gebruik maakt van de enorme vooruitgang van php6, maar oude projecten kunnen nog prima blijven leven op hosts met 5.x / 4.x (al mogen de hosts die nog 4.x draaien zich schamen)

Het is een tijd geleden dat ik de tutorial gelezen heb, dus weet het niet zeker, maar phpErik besprak de "draft", hoe het er ongeveer uit ging zien. php6 verschijnt 3 jaar na de uitgave van deze tutorial, en er is heel wat veranderd.
Ivo K
Ivo K
18 jaar geleden
 
0 +1 -0 -1
Ja, er is mij verteld dat mysql_* niet weggehaald wordt, maar dat de mysql_* functies niet meer uitgebreid worden. Lijkt me opzich wel het meest logisch.
Richard van Velzen
Richard van Velzen
18 jaar geleden
 
0 +1 -0 -1
Zie hier: http://nl.php.net/manual/en/mysqli.overview.php

Tabelletje onderaan verklaart alles.
Phpnuke r
phpnuke r
17 jaar geleden
 
Wauw wat een veranderingen, ik heb hier gekeken:

http://php.net/manual/en/book.pdo.php

Blijven de querys hetzelfde?

like:

SELECT * FROM persons

En blijft if{}elseif{}else{} nog bestaan? Anders vormt zich een groot drama aangezien er minstens 2000x if..else in mijn project staan in 1000 bestanden.

Hoewel dit een drama word kan ik niet wachten ;3 By the way download is broken?
- Ariën  -
- Ariën -
17 jaar geleden
 
0 +1 -0 -1
SQL is SQL, dus dat blijft zeker weten hetzelfde

Waarom zou een veel gebruikte functie opeens niet meer backwardscompatible worden?

Trouwens 2000 keer if-else... dat kan je ook herschrijven naar switch() als er meerdere expressies in staan..
Nick Zwaal
Nick Zwaal
17 jaar geleden
 
0 +1 -0 -1
Deze tutorial is 3 jaar geleden opgezet maar ik hoor nog steeds weinig van PHP6, betekend dit dat ik uit moet kijken met het opzetten van mijn site (ik wil hem in een paar maanden in de lucht hebben), omdat PHP6 eraan komt?

Als ik de tutorial doorlees maak ik me niet zo heel veel zorgen (PDO is geloof ik nu al beschikbaar (5.3.5), dus dat is gewoon kwestie van alleen PDO's gebruiken, daarnaast zijn namespaces gewoon handig en zullen die vermoedelijk niets breken, toch?), maar ik vraag het graag nog even na bij de kenners ;)

'Men is gewend dat waarden uit $_GET en $_POST automatisch geëscaped zijn' Wat houdt geëscaped hier in? (Google helpt me niet xD).


17 jaar geleden
 
0 +1 -0 -1
Je hoeft je geen 'zorgen' te maken over de nieuwe versie. Ze zijn al heel lang bezig met een nieuwe versie, maar erg hard zal die niet komen. Als je terug kijkt in de geschiedenis dan zie je dat eigenlijk bij elke nieuwe major versie de hele engine opnieuw geschreven is. Voor php 6 zie ik dat nog niet snel gebeuren. Ook zijn veel die op het programma stonden voor php 6, zoals bijvoorbeeld namespaces, al in php 5.3.5 zitten.
Ook zal het gewoon zo zijn dat de meeste dingen die in php 5 werken ook gewoon in php 6 zullen werken. Waaronder mysql, mysql gaat niet verwijderen (desalniettemin raad ik wel pdo aan).
Een aantal dingen die in php 4 werken zullen zeker weten niet meer werken in php 6, maar php 4 is dan dus ook al steen oud. Als je nu nog php 4 gebruikt loop je eigenlijk al een paar jaar achter (wat in de IT wereld veel is).
Verder zullen er inderdaad een aantal dingen die werken in php 5 niet meer werken in php 6, maar die staan ook al aangekondigd, zoals bijvoorbeeld safe_mode.

Dat $_GET en $_POST geëscaped zijn wordt denk ik magic_quotes mee bedoelt, maar zoals je kunt zien word nu al sterk afgeraden om die te gebruiken.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Phpnuke r
phpnuke r
17 jaar geleden
 
0 +1 -0 -1
Oke bedankt, eigenlijk snap ik het niet komt php6 nog wel uit?

by the way:

Ik gebruik inderdaad veel if..elses maar er is geen enkele pagina die 7 if..elses gebruikt op één onderwerp of meer, na 7 gebruik ik namelijk een switch. Ik heb gewoon veel files omdat ik een cms aan het maken ben. Maar mocht if...else veranderd worden zou dat een groot probleem worden voor mij...

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Installatie PHP 6 naast PHP 5
  2. Inleiding
  3. Bye@ Register_globals, magic_quotes, mysql_query()
  4. Namespaces (vanaf PHP 5.3)
  5. Label en goto
  6. Verkorte ifsetor() (vanaf PHP 5.3)
  7. Static keyword (vanaf PHP 5.3?)

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.