Re: Re: PHP 7.2.0 Beta 1 released

From: Date: Sat, 22 Jul 2017 04:32:56 +0000
Subject: Re: Re: PHP 7.2.0 Beta 1 released
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-100003@lists.php.net to get a copy of this message
Rasmus Lerdorf in php.internals (Fri, 21 Jul 2017 22:15:13 -0400): >On Fri, Jul 21, 2017 at 9:50 PM, Jan Ehrhardt <phpdev@ehrhardt.nl> wrote: > >> The case: class RulesActionContainerUI has a public function form: >> > public function form(&$form, &$form_state, $options = array(), $iterator >> = NULL) { >> >> class RulesRuleUI extends RulesActionContainerUI with a public function >> > public function form(&$form, &$form_state, $options = array()) { >> >> Bad programming, but no PHP ever stumbled over it. PHP 7.2.0 Beta 1 >> issues a fatal error that RulesRuleUI::form must be compatible with >> RulesActionContainerUI::form. IMHO a valid remark, but still a BC break. >> Is this documented anywhere? Or should the Fatal Error become less >> fatal? > >This sounds strange. This hasn't changed in 7.2. It was the same in 7.1 and >7.0. Even in 5.6 and 5.5 it was an E_STRICT. Unless the Windows version has >somehow drifted, but I don't see how that would be possible. Are you sure >it isn't caused by something else? Your example issues an E_STRICT warning, in both PHP 7.2 nts x64 and PHP 7.1 nts x64, so it must be caused by something else. I have no faint idea (yet) what causes it. I am doing exactly the same: switch the config from PHP 7.1 as mod_fcgid to PHP 7.2 as mod_fcgid (or vice versa), restart Apache (2.4.27) and run 'Flush all caches'. Under PHP 7.2 I get a fatal error and under PHP 7.1 I do not even get a warning. The php.ini's are exactly the same, except for the location of the error_log. Under PHP 7.2, I am also getting a lot of warnings for deprecated things: - create_function() - each() - count() on a non-Countable variable Those were expected. But why Drupal7 transforms one warning into a fatal error beats me. Talking about bad programming, this was the weirdest each(), found in menu.inc: > list($function, $args) = each($function); each() is supposed to advance the array pointer, but for which $function? The first or the last in the statement? -- Jan

« previous php.internals (#100003) next »