PHP Nette - TypeError Argument must be of the type int, float given

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

PHP Nette - TypeError Argument must be…

19.06.2020 napsal Mizusawaesashi

Vyřešeno PHP Nette - TypeError Argument must be of the type int, float given (how return type int from round)
Ahoj,

na serveru s PHP 7.4 mně přestala fungovat operace s obrázky ( Nette\Utils\Image::fromBlank() ), kterou používám v Nette. Dříve to jelo bez problémů. Nevíte co to je za chybu? Díky

CHYBA:

TypeError
Argument 2 passed to Nette\Utils\Image::fromBlank() must be of the type int, float given, called in /var/www/is_dev/vendor/nette/utils/src/Utils/Image.php on line 392 search►

.../vendor/nette/utils/src/Utils/Image.php:392

Nette\Utils\Image::fromBlank()

.../vendor/nette/utils/src/Utils/Image.php:292

Nette\Utils\Image->crop()

.../app/AdminModule/model/UploadsAdmin.php:152

Nette\Utils\Image->resize()

142:
143:
144: } else {
145:
146:
147: $width = $thumbMaxSize;
148: $height = round($thumbMaxSize / 1.5);
149:
150:
151: if ($image->width > $image->height) {
152: $image->resize($width, $height, Image::EXACT);
153:
154:
155: } else {
156: $image->resize($width, $height, Image::EXACT);

The English language is translated by machine - the translator can modify eg cited codes = it is better to use codes from the Czech original.

PHP Nette - TypeError Argument must be of the type int, float given (how return type int from round)

Hi,

on a server with PHP 7.4, the image operations I use in Nette have stopped working for me ( Nette\Utils\Image::fromBlank() ). It used to go smoothly. Don't know what the mistake is? Thanks

ERROR:

TypeError
Argument 2 passed to Nette\Utils\Image::fromBlank() must be of the type int, float given, called in /var/www/is_dev/vendor/nette/utils/src/Utils/Image.php on line 392 search►

.../vendor/nette/utils/src/Utils/Image.php:392

Nette\Utils\Image::fromBlank()

.../vendor/nette/utils/src/Utils/Image.php:292

Nette\Utils\Image->crop()

.../app/AdminModule/model/UploadsAdmin.php:152

Nette\Utils\Image->resize()

142:
143:
144: } else {
145:
146:
147: $width = $thumbMaxSize;
148: $height = round($thumbMaxSize / 1.5);
149:
150:
151: if ($image->width > $image->height) {
152: $image->resize($width, $height, Image::EXACT);
153:
154:
155: } else {
156: $image->resize($width, $height, Image::EXACT);

Zobrazit odpovědi

Nejlépe hodnocení uživatelé
Hanz

Počet UP: 5142

React: 224

Rusty

Počet UP: 2365

React: 105

OL3G

Počet UP: 1651

React: 65

Strosmajer

Počet UP: 502

React: 31

Oxytocin

Počet UP: 303

React: 27

SYSTEM

Počet UP: 443

React: 27

Hyacint

Počet UP: 43

React: 22

Odpovědi na dotaz

RE: PHP Nette - TypeError…

21.06.2020 odpověděl Hanz (update 21.06.2020)

Zkontrolováno

Ahoj,

musíš ten round upravit aby ti vracel místo float datový typ int takto:

$width = intval(round($thumbMaxSize / 1.5));

The English language is translated by machine - the translator can modify eg cited codes = it is better to use codes from the Czech original.

PHP Nette - TypeError Argument must be of the type int, float given (how return type int from round)

Hi,

you have to modify the round to return the int data type instead of the float as follows:

$width = intval(round($thumbMaxSize / 1.5));
Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace