Avatar billede morty Nybegynder
09. oktober 2003 - 21:43 Der er 11 kommentarer og
1 løsning

hvad betyder den fejl

PHP 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 [runtime function name](). 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. in G:\kontakt\lib\class.coolstuff.php on line 270 PHP 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 [runtime function name](). 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. in G:\kontakt\lib\class.coolstuff.php on line 279


og hvordan retter jeg den
jeg skal lige huske at sige at jeg er ny begynder...iphp
Avatar billede fangel Nybegynder
09. oktober 2003 - 21:46 #1
smid lige linie 265-275 af filen /kontakt/lib/class.coolstuff.php

umidbart ligner det at der bliver brugt en funktion der ikke findes mere! - så smid lige koden

Morten
Avatar billede fangel Nybegynder
09. oktober 2003 - 21:49 #2
fandt dette på phpbuilder

http://www.phpbuilder.com/mail/phplib-list/2001051/0231.php

og som svar derpå:
http://www.phpbuilder.com/mail/phplib-list/2001051/0232.php

den sidste forstår du nok ikke - men prøv at smid koden, så kan vi bedre guide dig

Morten
Avatar billede morty Nybegynder
09. oktober 2003 - 21:55 #3
hej Morten

her er koder fra linie 265 til 275

                        CoolStuff::PrintR($value, $return, $show_var_types, $use_colors);
                    }
                    else
                    {
                        # Get variable type
                        if ($show_var_types) $vartype = CoolStuff::GetVartypeString(&$value, $use_colors);
                        $out .= $vartype . $f_str . $value . $f_end . "\n";
                    }
                }
                $out .= CoolStuff::Indent($indent - 1) . ")\n" . ($indent > 1 ? "\n":"");
            }
Avatar billede morty Nybegynder
09. oktober 2003 - 21:59 #4
er det også noget der skal rettes i ini filen..
Avatar billede fangel Nybegynder
09. oktober 2003 - 22:01 #5
tja, du kan nok bare rette

allow_call_time_pass_reference

til 'true'... men ikke sikker på hvor fremtids-sikkert dette er... men det vil løse dit problem...

ellers skal du nok overveje et mindre komlekst - mere vedligeholdt - system

Morten
Avatar billede morty Nybegynder
09. oktober 2003 - 22:13 #6
det har jeg rette den til on den var sæt til off

men det er stædig væk det samme fejl der kommer frem.
Avatar billede morty Nybegynder
09. oktober 2003 - 22:16 #7
det her koder fra linie 265 til 280 i class.coolstuff.php

                   
{
                        CoolStuff::PrintR($value, $return, $show_var_types, $use_colors);
                    }
                    else
                    {
                        # Get variable type
                        if ($show_var_types) $vartype = CoolStuff::GetVartypeString(&$value, $use_colors);
                        $out .= $vartype . $f_str . $value . $f_end . "\n";
                    }
                }
                $out .= CoolStuff::Indent($indent - 1) . ")\n" . ($indent > 1 ? "\n":"");
            }
            else
            {
                # Get variable type
                $out .= CoolStuff::GetVartypeString(&$var, $use_colors) . $f_str . $var . $f_end . "\n";
            }
Avatar billede fangel Nybegynder
09. oktober 2003 - 22:18 #8
det er meget svært at sige noget omkring det - da det er en stor sammenhængende klasse (hele filen)...

den er kodet til en meget gammel version af PHP, så jeg vil anbefale at du finder et nyere script der kan det samme...

tror det er skrevet til 4.0.x - nu er vi ved 4.3.3 (4.3.4 er i beta)

Morten
Avatar billede tipsen Nybegynder
10. oktober 2003 - 12:02 #9
Problemet ligger eks. i denne linie:

if ($show_var_types) $vartype = CoolStuff::GetVartypeString(&$value, $use_colors);

Hvor GetVartypeString kaldes med to argumenter, hvor det ene bliver "passed by reference" - nemlig $value - derfor er der & tegn foran $value - det betyder at der ikke bliver lavet en kopi af værdien i value, men det i stedet er en reference til den originale variabel der bliver givet til funktionen. Dette betyder så, at funktionen også har mulighed for at ændre indholdet af den originale variabel, da den jo har en reference direkte til det sted i hukommelsen, hvor variablen ligger! (Svarer til pointere i C/C++)

Så vidt jeg ved, skal "pass by reference" nu angives i funktionsdeklarationerne og PHP klarer så resten selv - dvs. der skal ikke noget & foran de variable du giver som inputargumenter til funktionerne - men du skal dog sørge for at dine klasser også er korrekte/opdaterede, så det er ikke sikkert det er nok at fjerne et par &-tegn :-)

Læs evt: http://dk.php.net/manual/en/functions.arguments.php#functions.arguments.by-reference
Avatar billede morty Nybegynder
18. oktober 2003 - 22:01 #10
det virker ikke tipsen..

jeg skal huske at sige at det er eclone jeg prøver at får den til at virke
Avatar billede tipsen Nybegynder
19. oktober 2003 - 09:29 #11
Når du bare skriver "det virker ikke", kan vi ikke rigtigt komme videre - jeg kan blot svare "nå" og tilføje "Så tror jeg ikke det gjort det rigtigt!".
Avatar billede morty Nybegynder
20. oktober 2003 - 09:32 #12
hvad vil have jeg skrive, jeg har fjernet &-tegn , men nu når jeg starter og kør så kommer den stædig væk med den fejl.

og nu gider jeg heller ikke mere, jeg som sagt nu begynder i PHP, og der ser ikke så godt ud, så jeg må prøve mig i ASP.

mange tak for jeres support og hjælp.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester