Skip to content

PHP 8.4 min function fails on typed integer #14873

Closed
@Alkarex

Description

@Alkarex

Description

Hello,
The min() function seems to fail (returns null) on a typed integer, but only in specific situations and environments.

Notes:

  1. It fails when called from Apache module php84-apache2 (i.e. from a Web browser) but not when called from CLI (command line).
  2. It fails with a typed int parameter (function testMin(int $value)) but not on untyped parameter (function testMin($value)).

The following code:

<?php

function testMin(int $value): int {
	$value = min($value, 100);
	return $value;
}

echo testMin(5);

Resulted in this output:

PHP Fatal error:  Uncaught TypeError: testMin(): Return value must be of type int, null returned in ./test-min.php:5
Stack trace:
#0 ./test-min.php(8): testMin()
#1 {main}
  thrown in ./test-min.php on line 5

But I expected this output instead:

5

System information:

# cat /etc/issue 
Welcome to Alpine Linux 3.21.0_alpha20240606 (edge)
Kernel \r on an \m (\l)

# php -v
PHP 8.4.0alpha1 (cli) (built: Jul  4 2024 10:02:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.0-dev, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.0alpha1, Copyright (c), by Zend Technologies

PHP Version

PHP 8.4.0alpha1

Operating System

Alpine Linux 3.21.0_alpha20240606 (edge)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions