Autor | Zpráva | ||
---|---|---|---|
robbie Profil |
#1 · Zasláno: 8. 2. 2019, 12:18:32
Ahoj, v článku je uvedeno toto:
(bool)(true / 2) / vyhodi mi to prazdny vysledek "měla babka" + "4 jablka" /A non-numeric value encountered -toto by se melo pretypovat na int (int) ((1 - 0.9) * 100) /opet prazdny vysledek a toto by mel byt take int 10 , ze true . "2" / opet nic je to zamer autora nebo je neco spatne s online php zobrazenim na: sandbox.onlinephpfunctions.com Děkuji |
||
TomášK. Profil * |
#2 · Zasláno: 8. 2. 2019, 13:08:44
Tipuju, že v případech, kdy se nic nezobrazí, tu hodnotu jen spočítáš, ale nevypíšeš.
|
||
CZechBoY Profil |
#3 · Zasláno: 8. 2. 2019, 14:11:37
Chyba se zobrazuje od nějaké verze 7.1, článek byl psán nejspíš pod php 5.
|
||
Alphard_ Profil * |
#4 · Zasláno: 9. 2. 2019, 02:23:14
Doplním odpovědi kolegů. V tom úkolu jsou uvedené různé výrazy a čtenářovým úkolem je vyzkoušet je vyhodnotit. K tomu opravdu nestačí prosté copy&paste, ale je třeba doplnit alespoň výpis výsledků. Což jde udělat např. takto (samozřejmě existuje mnoho variant, i bez pole):
<?php $test = []; $test[] = (bool)(true / 2); $test[] = "měla babka" + "4 jablka"; $test[] = (int) ((1 - 0.9) * 100); $test[] = true . "2"; var_dump($test); výsledkem tohoto kódu na PHP 5.6 (pro verzi 5 byl ten návod psaný) je: array(4) { [0]=> bool(true) [1]=> int(4) [2]=> int(9) [3]=> string(2) "12" } Na nejnovější verzi PHP 7.2 potom dostáváme: <br /> <b>Warning</b>: A non-numeric value encountered in <b>[...][...]</b> on line <b>5</b><br /> <br /> <b>Notice</b>: A non well formed numeric value encountered in <b>[...][...]</b> on line <b>5</b><br /> array(4) { [0]=> bool(true) [1]=> int(4) [2]=> int(9) [3]=> string(2) "12" } Jak je vidět, všechny výrazy se stále vyhodnocují stejně (tj. jsou vyhodnotitelné), ale v případě nevalidních vstupů nás PHP od verze 7.1 na tuto skutečnost upozorňuje: New E_WARNING and E_NOTICE errors have been introduced when invalid strings are coerced using operators expecting numbers (+ - * / ** % << >> | & ^) or their assignment equivalents. An E_NOTICE is emitted when the string begins with a numeric value but contains trailing non-numeric characters, and an E_WARNING is emitted when the string does not contain a numeric value. |
||
robbie Profil |
#5 · Zasláno: 9. 2. 2019, 08:12:52
Skvělé, díky moc.
Ale to jsem blázen>)) včera to vůbec nefungovalo a dnes v pohodě>)). |
||
Časová prodleva: 6 let
|
0