[PHP] Verschil in notatie.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Stel ik heb een array. Aan de hand van die array wil ik gaan bekijken of er een resultaat is in SQL. Nu kan ik dat op 2 manieren doen.
1e manier:
PHP:
1
2
3
4
$max = Array();
$max['koffie_kopjes'] = 10;
 
$select = "SELECT * FROM bla WHERE koffie_kopjes='$max[koffie_kopjes]'"


2e manier:
PHP:
1
2
3
4
$max = Array();
$max['koffie_kopjes'] = 10;
 
$select = "SELECT * FROM bla WHERE koffie_kopjes='". $max['koffie_kopjes'] ."'"


Zelf gebruik ik altijd de eerste manier maar ik zie steeds vaker in code de 2e manier voorkomen. Nu vraag ik me dus af wat beter / netter / effectiever is e.d.

(ja ik heb gezocht met google / GoT search).

[ Voor 8% gewijzigd door Verwijderd op 09-07-2003 22:00 ]


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17-09 22:12
Het is niet beter, het is niet effectiever, maar in de ogen van veel mensen is het duidelijker en netter vooral bij gehighlite source. Je ziet nu in 1 oog opslag het verschil tussen een gewone string en een variabele.

Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 17-09 16:59

Johnny

ondergewaardeerde internetguru

1. Sneller, heeft iets te maken met de Zend engine die niet hoeft over te schakelen.
2. Je kunt woorden achter elkaar plakken, bijvoorbeeld $voor."achter"; zou anders $voorachter worden en dus een lege variable zijn.
3. Makkelijker te lezen, je ziet het hier al op GoT, de variable is blauw, de rest rood.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

Verwijderd

Die enkele quotes moeten weg uit je MySQL-query. Er moeten wél quotes om de index van je array. Ik vind dit helemaal netjes en correct:

PHP:
1
$query = "SELECT * FROM bla WHERE koffie_kopjes=".$max['koffie_kopjes'];

Acties:
  • 0 Henk 'm!

  • Bananeman
  • Registratie: Juli 2000
  • Niet online
Verwijderd schreef op 09 July 2003 @ 21:54:
Die enkele quotes moeten weg uit je MySQL-query. Er moeten wél quotes om de index van je array. Ik vind dit helemaal netjes en correct:

PHP:
1
$query = "SELECT * FROM bla WHERE koffie_kopjes=".$max['koffie_kopjes'];
Die quotes om de string heen kunnen nu dus enkele quotes worden ('). Scheelt ook weer wat in snelheid aangezien de constante string niet afgezocht hoeft te worden naar variabelen.

Motor-forum.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Je kan je query ook zo schrijven, ook al mag dat niet van drm, maar het kan wel. ;)
PHP:
1
$query = "SELECT * FROM bla WHERE koffie_kopjes={$max['koffie_kopjes']}";

In bovenstaande voorbeeld hou je in ieder geval je indexes gequote.

Verder is het verschil is snelheid tussen " en ' al zo vaak langs gekomen, het komt er op neer dat het eigenlijk weinig uitmaakt.

[ Voor 33% gewijzigd door Verwijderd op 09-07-2003 22:13 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Je eerste gaat nogal fout bij complexere array-structuren en negeert gewoon de onbekende variabelen (typefouten enzo), dat maakt hem wat foutgevoeliger, zelf gebruik ik meestal de versie van Nokia en iets minder vaak je tweede versie :)
Pagina: 1