[PHP] Wat betekent $_?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een vraag over php. Ik heb me helemaal rot gezocht naar dit probleem. Het enige wat ik heb kunnen vinden is dat het een alias ergens voor is. Weet iemand waar de volgende variabele $_ naar verwijst?

global $_;

Acties:
  • 0 Henk 'm!

  • pasta
  • Registratie: September 2002
  • Laatst online: 12-01 14:16

pasta

Ondertitel

Ik neem aan naar iets anders.

Zoek eens door je code waar $_ nog meer voorkomt, dan kom je er vanzelf achter waar hij gebruikt wordt. :)

Signature


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Google: [google]$_[/google]

et voila: Perl

[ Voor 43% gewijzigd door Bosmonster op 12-01-2006 10:43 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het gevonden denk ik. Het verwijst volgens mij naar $_ENV["_"] welke het relatieve pad naar het huidige bestand bevat. Alleen omdat register_globals uit staat bestaat de variable $_ niet als zodanig. Weet iemand of dit een correcte aanname is?

@Bosmonster

Ik heb ik google gezocht maar van die perl links die ik vond kon ik niet meer opmaken dan dat het een alias was alleen niet naar wat.

[ Voor 11% gewijzigd door Verwijderd op 12-01-2006 10:58 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Ah, het ging over PHP... dan lijkt je aanname me correct..

Het eerste waar ik aan dacht bij $_ is Perl, waar het een veel voorkomend iets is (zoals Google je ook aangeeft).

Blijkbaar is er in PHP met ranzige instellingen ook iets dergelijks standaard gedeclareerd.

[ Voor 65% gewijzigd door Bosmonster op 12-01-2006 11:13 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij is $_ gewoon een legitieme variabele naam.

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

In Perl en Ruby is het de impliciete variabele. Het bevat het resultaat van de laatste expressie:
Ruby:
1
2
3
4
5
while gets           # assigns line to $_
  if /Ruby/          # matches against $_
    print            # prints $_
  end
end

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Legitiem is nog niet netjes. Aan een variabelenaam moet je kunnen zien waar die variabele voor is, en anders is je code gewoon al heel snel niet te lezen. Weet jij bij $_ (global) of $_ENV['_'] (superglobal) waar die variabele voor dient? Zonder in de manual te spieken uiteraard? ;)

$_ is gewoon ranzig als variabelenaam. :)

Trouwens, @TS: zou je in het vervolg iets beter in de manual willen kijken? Of desnoods zelfs uitproberen? Wanneer je echo $_; had gedaan dan had je toch genoeg geweten? Je zou dan in elk geval geweten hebben dat, wat de variabele ook betekent, het om een global ging die door een superglobal is vervangen, en dan had je daarna alleen nog maar hier moeten kijken om na een paar kliks bij het goede antwoord te komen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • spone
  • Registratie: Mei 2002
  • Niet online
Hoe ik php gebruik, kom ik $_ tegen als een global, in de vorm van $_GET['varnaam'] en $_POST['varnaam']

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

spone schreef op donderdag 12 januari 2006 @ 11:31:
Hoe ik php gebruik, kom ik $_ tegen als een global, in de vorm van $_GET['varnaam'] en $_POST['varnaam']
Ik denk toch echt dat topicstarter de global variabele $_ uit de pre-superglobal tijd bedoelt, en niet $_ als een onderdeel van de variabelenaam van een van de superglobals. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op donderdag 12 januari 2006 @ 11:29:
Trouwens, @TS: zou je in het vervolg iets beter in de manual willen kijken? Of desnoods zelfs uitproberen? Wanneer je echo $_; had gedaan dan had je toch genoeg geweten? Je zou dan in elk geval geweten hebben dat, wat de variabele ook betekent, het om een global ging die door een superglobal is vervangen, en dan had je daarna alleen nog maar hier moeten kijken om na een paar kliks bij het goede antwoord te komen. :)
Uiteraard heb ik de variabele op het scherm gezet. Deze gaf echter een lege string. Het is niet mijn eigen werk waarin ik dit tegen ben gekomen. Ik heb ook op die manual pagina gekeken. Het is me nu dus duidelijk geworden dat die collega van mij een ranzige manier heeft gebruikt om een bepaalde waarde uit de $_ENV global te halen.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik gok dat die manier niet ranzig is, maar de code gewoon oud, of zijn testserver was niet bepaald up to date. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 16-09 10:29

Apache

amateur software devver

Het doet me een beetje aan de short versie van gettext denken, nl _(), mss gebruiken ze die variable voor localization?

If it ain't broken it doesn't have enough features


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Apache schreef op donderdag 12 januari 2006 @ 13:11:
Het doet me een beetje aan de short versie van gettext denken, nl _(), mss gebruiken ze die variable voor localization?
Volgens mij was het al opgelost hoor. ;)
Verwijderd schreef op donderdag 12 januari 2006 @ 10:52:
Ik heb het gevonden denk ik. Het verwijst volgens mij naar $_ENV["_"] welke het relatieve pad naar het huidige bestand bevat. Alleen omdat register_globals uit staat bestaat de variable $_ niet als zodanig. Weet iemand of dit een correcte aanname is?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1