Undefined Variabel
In beide gevallen heb ik PHP Warning A non-numeric value encountered
waardoor ik ook het tweede geval heb getest en het tweede geval is inderdaad een string
Dus de vraag is WAAROM het eerste geval fout is!!!
Edit:
Bericht teruggeplaatst, verwijderen is niet de bedoeling! Ook is het niet de bedoeling om elkaar in de haren te springen!
Gewijzigd op 28/05/2017 18:21:45 door - Ariën -
Ozzie: ik had die '5' even gemist, maar nu je het zegt inderdaad ja. En dat is ook meteen de reden van de melding, dat soort achterlijkheden die je kunt uithalen.
Je kunt ook gewoon leren wat datatypen zijn en dat coercion GEEN goed idee is. Wanneer je wilt converteren kun je ook gewoon casten. Een string optellen bij een getal of andersom hoezeer die string ook op een getal lijkt is achterlijk. Getallen tel je op bij getallen, net als dat je strings concateneert aan strings. Dat je nu allerlei scripts moet gaan repareren zegt NIETS over PHP, maar over hoe jij ermee om bent gegaan, bugs in de hand werkend en wel. Hetzelfde geldt voor niet bestaande array indexes. Wat wil je dan dat er gebeurt? In stilte foute data verwerken? Wanneer je weet dat een array index niet hoeft te bestaan kun je daarop controleren.
Ik ben nu wel een beetje klaar met dat gevit op PHP 7.1, je opmerkingen hebben immers NIETS met PHP te maken. Als jij geen meldingen wil zien zet je toch gewoon lekker error_reporting(0) bovenaan je script? Moet je alleen niet aankomen met "waarom doet dit niet wat ik wil?"
Voor de grap trouwens: weet je hoeveel scripts ik heb moeten repareren bij het migreren? Ik ga je laten raden naar het aantal.
Gewijzigd op 28/05/2017 01:33:45 door Ben van Velzen
Lees even je eigen reactie en praat gewoon zelf normaal ... zonder te gaan schreeuwen.
>> Dus de vraag is WAAROM het eerste geval fout is!!!
Post eens je hele code.
Toevoeging op 28/05/2017 01:27:22:
>> Ik ben nu wel een beetje klaar met dat gevit op PHP 7.1, je opmerkingen hebben immers NIETS met PHP te maken.
Precies!!
En als het als gevit is overgekomen dan was dat niet negatief bedoeld,
enkel kwam ik niet tot een oplossing, wat in PHP7.0 goed runt en in PHP7.1 vast loopt,
ik weet nu waarom, en dit is voor mij een werkend oplossing.
de data kan zijn '', of een string, zijn of een getal.
$waarde='';//$waarde='aac';// $waarde='1080,500,1';
if($waarde==''){$doeditdan=$waarde;}elseif($waarde!=''){$doeditdan=$waarde;} elseif($waarde>0) { $doeditdan = $waarde ;}
echo $doeditdan;
En zo werkt het met elsif gaat het goed ^^)
Edit:
Bericht teruggeplaatst, verwijderen is niet de bedoeling!
Gewijzigd op 28/05/2017 18:22:20 door - Ariën -
Let op.
if ($waarde == '') Waarde is leeg, oh laat ik doeditdan maar gelijk maken aan waarde.
elseif ($waarde != '') Waarde is niet leeg, laat ik doeditdan maar gelijk maken aan waarde.
elseif ($waarde > 0) (wanneer ga je dit met bovenstaande condities ooit zien?) Laten we opnieuw doeditdan maar gelijk maken aan waarde.
Het gaat er om dat op deze manier geen foutmeldingen meer zijn
En hoe de data ingevuld word, moet zo flexibel als mogelijk zijn
de eenvoud zit in de data, des te korter des te beter.
dus als data geen waarde geeft of een string of een getal
flex !! toch.
de site werkt super snel en daar gaat het om.
Edit:
Bericht teruggeplaatst, verwijderen is niet de bedoeling!
Gewijzigd op 28/05/2017 18:23:01 door - Ariën -
Die heb ik vaker gehoord.
Gewijzigd op 28/05/2017 17:49:08 door Ozzie PHP
Maar zullen we dit aan het moderatie-team overlaten?
Zeker ... ze zijn als het goed is op de hoogte ;-)
Edit:
Ed Hoeven. Het is niet de bedoeling om berichten te verwijderen. Ik heb ze inmiddels weer teruggeplaatst. Zie ook je PM die ik je heb verstuurd.
Gewijzigd op 28/05/2017 18:23:54 door - Ariën -
Enig gedrag met respect had ik hier wel verwacht... maar als er een begint met
Waarom zit je continu te z**ken over PHP 7.1 terwijl je zelf rare dingen doet?
Terwijl diegene zelf niet alles leest...!!! 1e geval
2e
in BEIDE gevallen heb ik PHP Warning A non-numeric value encountered
WAARDOOR ik ook het TWEEDE geval heb GETEST en het tweede geval is inderdaad een string
Dus de vraag is WAAROM het eerste geval fout is!!!
Persoonlijk vind ik het wel jammer...
Quote:
Ik wil een javascript uit laten voeren, maar krijg een melding undefined variabel, terwijl er zeker wat achter staat.
Nu ben ik bang dat dit in de loop van de jaren veranderd is, en dat het daarom niet werkt.
[…]
Nu ben ik bang dat dit in de loop van de jaren veranderd is, en dat het daarom niet werkt.
[…]
Doordat $logrij = mysqli_fetch_array($logdata) pas in de while (…) wordt aangeroepen, is $logrij in de do {…} aanvankelijk undefined …
Als we kijken naar de migration notes van 7.1, dan staat daar letterlijk: "an E_WARNING is emitted when the string does not contain a numeric value."
Uit het voorbeeld dat erbij wordt gegeven valt af te leiden dat '5' (inclusief de quotes) door PHP 7.1 gezien wordt als een numerieke waarde (iets wat hier expliciet wordt beschreven). De door Ed geposte code zou dus geen warning moeten triggeren. Als ik dat zelf test, dan komt er inderdaad geen warning.
Het enige wat ik me kan voorstellen is dat de fout dus zat in een ander stuk code, maar door de rabiate discussie is dat nooit goed naar boven gekomen...
Gewijzigd op 30/05/2017 11:53:12 door Willem vp
Willem vp op 30/05/2017 11:44:37:
Uit het voorbeeld dat erbij wordt gegeven valt af te leiden dat '5' (inclusief de quotes) door PHP 7.1 gezien wordt als een numerieke waarde (iets wat hier expliciet wordt beschreven). De door Ed geposte code zou dus geen warning moeten triggeren. Als ik dat zelf test, dan komt er inderdaad geen warning.
En vandaar ook mijn eerdere vraag om de gehele code te posten ...
Ozzie PHP op 28/05/2017 01:26:42:
>> Dus de vraag is WAAROM het eerste geval fout is!!!
Post eens je hele code.
Post eens je hele code.
Mocht Ed nog meelezen ... Ik stoorde me er vooral aan dat je continu liep te vitten op een PHP-versie (7.1) terwijl dat niet relevant is en niets toevoegt. Mijn uitspraak was misschien een beetje bot, waarvoor bij deze mijn oprechte excuses. Mocht je willen terugkomen op het forum, weet dan dat je welkom bent ...
Gewijzigd op 30/05/2017 14:50:37 door Ozzie PHP