Van $_REQUEST, $_GET en $_POST welke is de snelste?

Welke van deze codes is sneller?

$temp = $_REQUEST['s'];

of

if (isset($_GET['s'])) {
  $temp = $_GET['s'];
}
else {
  $temp = $_POST['s'];
}

Antwoord 1, autoriteit 100%

$_REQUEST, standaard , bevat de inhoud van $_GET, $_POSTen $_COOKIE.

Maar het is slechts een standaard die afhangt van variables_order; en niet zeker of je met cookies wilt werken.

Als ik moest kiezen, zou ik waarschijnlijk niet $_REQUESTgebruiken, en zou ik $_GETof $_POSTafhankelijk van wat mijn toepassing zou moeten doen(dwz de een of de ander, maar niet beide): algemeen gesproken :

  • U moet $_GETgebruiken wanneer iemand gegevens vanuw applicatie opvraagt.
  • En je moet $_POSTgebruiken wanneer iemand (invoegen of bijwerken; of verwijderen)gegevens naarje applicatie pusht.

Hoe dan ook, er zal niet veel verschil zijn in uitvoeringen: het verschil zal verwaarloosbaar zijn in vergelijking met wat de rest van je script zal doen.


Antwoord 2, autoriteit 11%

GET vs. POST

1) Zowel GET als POST maken een array aan (bijv. array( key => value, key2 => value2, key3 => value3, …)). Deze array bevat sleutel/waarde-paren, waarbij sleutels de namen zijn van de formulierbesturingselementen en waarden de invoergegevens van de gebruiker zijn.

2) Zowel GET als POST worden behandeld als $_GET en $_POST. Dit zijn superglobalen, wat betekent dat ze altijd toegankelijk zijn, ongeacht het bereik – en je kunt ze openen vanuit elke functie, klasse of bestand zonder iets speciaals te hoeven doen.

3) $_GET is een array van variabelen die via de URL-parameters aan het huidige script worden doorgegeven.

4) $_POST is een array van variabelen die via de HTTP POST-methode aan het huidige script wordt doorgegeven.

Wanneer GET gebruiken?

Informatie verzonden vanaf een formulier met de GET-methode is voor iedereen zichtbaar (alle namen en waarden van variabelen worden weergegeven in de URL). GET heeft ook limieten voor de hoeveelheid informatie die moet worden verzonden. De beperking is ongeveer 2000 tekens. Omdat de variabelen echter in de URL worden weergegeven, is het mogelijk om de pagina te bookmarken. Dit kan in sommige gevallen handig zijn.

GET kan worden gebruikt voor het verzenden van niet-gevoelige gegevens.

Opmerking: GET mag NOOIT worden gebruikt voor het verzenden van wachtwoorden of andere gevoelige informatie!

Wanneer POST gebruiken?

Informatie die wordt verzonden vanaf een formulier met de POST-methode is onzichtbaar voor anderen (alle namen/waarden zijn ingesloten in de hoofdtekst van het HTTP-verzoek) en kent geen limiet voor de hoeveelheid informatie die moet worden verzonden.

Bovendien ondersteunt POST geavanceerde functionaliteit zoals ondersteuning voor meerdelige binaire invoer tijdens het uploaden van bestanden naar de server.

Omdat de variabelen echter niet in de URL worden weergegeven, is het niet mogelijk om de pagina te bookmarken.


Antwoord 3, autoriteit 9%

$_GET haalt variabelen op uit de querystring, of uw URL.>

$_POST haalt variabelen op uit een POST-methode, zoals (meestal) formulieren.

$_REQUEST is een samenvoeging van $_GET en $_POST waarbij $_POST $_GET overschrijft. Goed om $_REQUEST te gebruiken op zelfreferentieformulieren voor validaties.


Antwoord 4, autoriteit 6%

Ik raad aan om $_POSTen $_GETexpliciet te gebruiken.

Het gebruik van $_REQUEST zou sowieso onnodig moeten zijn met een goed site-ontwerp, en het heeft enkele nadelen, zoals je openstellen voor eenvoudigere CSRF/XSS-aanvallen en andere dwaasheden die voortkomen uit het opslaan van gegevens in de URL.

Het snelheidsverschil zou hoe dan ook minimaal moeten zijn.


Antwoord 5, autoriteit 3%

Gebruik verzoek. Niemand geeft om de snelheid van een dergelijke eenvoudige bediening en het is veel schonere code.


6

$ _ Ontvang variabelen uit de querystring of uw URL. & GT;

$ _ post haalt variabelen op van een postmethode, zoals (in het algemeen) vormen.

$ _ aanvraag is een samenvoegen van $ _get en $ _post waarbij $ _post $ _get overschrijft. Goed om $ _request te gebruiken op zelfrepirentische vormen voor validaties.


7

Ik zou de tweede methode gebruiken omdat het explicieter is. Anders weet u niet waar de variabelen vandaan komen.

Waarom moet je toch zowel Get en Post controleren? Het gebruik van een of de ander is zeker logischer.


8

Ik gebruik alleen _get of _post. Ik heb liever controle.

Wat ik niet leuk vind aan het fragment van de code in het OP is dat ze de informatie weggooien waarop HTTP-methode werd gebruikt. En die informatie is belangrijk voor ingangsontsteking.

Als een script bijvoorbeeld gegevens accepteert van een formulier dat in de DB gaat worden ingevoerd, had het formulier beter gebruik POST (Gebruik Get alleen voor idempotente acties ). Maar als het script de invoergegevens ontvangt via de GET-methode, moet het (normaal) worden afgewezen. Voor mij kan een dergelijke situatie rechtvaardigen bij het schrijven van een beveiligingsovertreding naar het foutlogboek, omdat het een teken is dat iemand iets probeert.

Met ofwel codefragment in het OP is deze ontsmetting niet mogelijk.


9

U bent voortijdig optimaliseren. Ook moet u echt nadenken over de vraag of u krijgt, moet worden gebruikt voor spullen die u om veiligheidsredenen staat.

Other episodes