/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Call-time pass-by-reference deprecated
Fra : Jens Tønnesen


Dato : 15-02-03 11:33

Jeg skal lave et PHP-baseret website for en ven, der har sit site
hostet hos enavn.dk. De bruger angiveligt PHP 4.1.3 på deres servere.

Jeg er nu i gang med de indledende tests, såsom at finde ud af, hvad
jeg kan og ikke kan på deres server.

Én af mine funktioner bruger GetImageSize() for at udtrække
IPTC-felterne fra et JPEG-billede. Imidlertid får jeg følgende warning
på skærmen, når jeg kalder funktionen:

"Warning: Call-time pass-by-reference has been deprecated - argument
passed by value; If you would like to pass it by reference, modify the
declaration of getimagesize(). If you would like to enable call-time
pass-by-reference, you can set allow_call_time_pass_reference to true
in your INI file. However, future versions may not support this any
longer."

Se, det har jeg jo aldrig hørt noget om. Faktisk står der jo på
http://www.php.net/manual/en/function.getimagesize.php at funktionens
andet parameter skal være en reference.

Det pudsige er bare, at funktionen i min kode virker - jeg får faktisk
hentet IPTC-data ud af billedet og over i reference-variablen.

Men jeg kan ikke fjerne warning'en ved f.eks. at sætte et @ foran
GetImageSize(), det er nemlig inkluderingen af den inklude-fil, der
indeholder funktion, der genererer fejlmeddelelsen.

Derimod kan jeg undertrykke den famøse warning ved at skrive

@include_once("navn-paa-includefil")

Et forsøg på at ændre ini-filen via
ini_set("allow_call_time_pass_reference",TRUE); bliver ignoreret af
systemet, men andre ini-settings kan jeg godt ændre.

Men er ' Call-time pass-by-reference' virkelig 'deprecated', som
advarslen skriver?

--
Jens Tønnesen - http://www.pressefoto.dk

 
 
Christian Joergensen (16-02-2003)
Kommentar
Fra : Christian Joergensen


Dato : 16-02-03 21:51

On Sat, 15 Feb 2003 11:32:31 +0100, Jens Tønnesen wrote:

> Men er ' Call-time pass-by-reference' virkelig 'deprecated', som advarslen
> skriver?

Nu er 'deprecated' jo langt fra det samme som at funktionaliteten ikke
eksisterer længere. Jeg kunne forestille mig at man ville fjerne
funktionaliteten helt ifbm. udgivelsen af PHP5

--
Christian Jørgensen | In order to understand recursion
http://www.razor.dk | one must understand recursion.


Jens Tønnesen (16-02-2003)
Kommentar
Fra : Jens Tønnesen


Dato : 16-02-03 22:52

"Christian Joergensen" <mail@phpguru.dk> skrev i
dk.edb.internet.webdesign.serverside.php:

>Jeg kunne forestille mig at man ville fjerne
>funktionaliteten helt ifbm. udgivelsen af PHP5

Med hvilken begrundelse?

(det undrer mig blot, at der ikke står en lyd om det på php.net -
funktionen getimagesize() er jo i eksemplet netop vist ved
pass-by-reference-eksempel).

--
Jens Tønnesen - http://www.pressefoto.dk

Nezar Nielsen (17-02-2003)
Kommentar
Fra : Nezar Nielsen


Dato : 17-02-03 03:33

Jens Tønnesen wrote in msg
<news:<vv4s4v87jlci4f6vf95onf2tboos5fjs5s@4ax.com>>:

....
> Én af mine funktioner bruger GetImageSize() for at udtrække
> IPTC-felterne fra et JPEG-billede. Imidlertid får jeg følgende warning
> på skærmen, når jeg kalder funktionen:
>
> "Warning: Call-time pass-by-reference has been deprecated - argument
....
>
> Se, det har jeg jo aldrig hørt noget om. Faktisk står der jo på
> http://www.php.net/manual/en/function.getimagesize.php at funktionens
> andet parameter skal være en reference.

Men call-time pass-by-reference hentyder, som jeg kan se det, bare til at du
kalder funktionen som getimagesize($file,&$info); hvorimod den gerne vil
kaldes som getimagesize($file,$info); (hvor funktions deklaration så siger
noget om at andet parameter accepterer en reference, fx. hvis det havde
været skrevet i php: function getimagesize($file,&$info){ ... }).


>
> Det pudsige er bare, at funktionen i min kode virker - jeg får faktisk
> hentet IPTC-data ud af billedet og over i reference-variablen.

Ja, for funktionen forventer at få en reference til et array ind, det eneste
den brokker sig over er at DU prøver at fortælle den at det skal være en
reference til et array (med &)

....
> Men er ' Call-time pass-by-reference' virkelig 'deprecated', som
> advarslen skriver?

Ja, det har den såvidt jeg husker været i en hel del versioner nu.


--
Mvh. Nezar Nielsen

Nano - Advanced Simplicity
http://www.nano.dk/

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste