PDA

View Full Version : PHP Warning After Move To New Host


HM666
12-05-2018, 07:53 PM
I'm getting the following warning after moving my websites to a new host when I try to save a template after editing it. The old host was running PHP 5.6, the new one is running PHP 7.2.12.

PHP Warning: sizeof(): Parameter must be an array or an object that implements Countable in ..../includes/class_core.php on line 4224

Here is what is in that part of the file.

// only called when an object is destroyed, so $this is appropriate
public function shutdown()
{
if (sizeof($this->callbacks))
{
foreach ($this->callbacks AS $callback)
{
call_user_func($callback);
}

unset($this->callbacks);
}
}

public function __wakeup()

I can edit templates but it will not show the edits on the site. Any help would be great.

shka
12-05-2018, 08:19 PM
One of the changes from php 7.1 => 7.2 http://php.net/manual/en/migration72.incompatible.php
Warn when counting non-countable types
An E_WARNING will now be emitted when attempting to count() non-countable types (this includes the sizeof() alias function).

Try


if ( is_array($this->callbacks) || $this->callbacks instanceof Countable )
{
foreach ($this->callbacks AS $callback)
{
call_user_func($callback);
}

unset($this->callbacks);
}


In php 7.3 there will be a is_countable() function. https://wiki.php.net/rfc/is-countable

But vB4 isn't compatible with php7.2. So this will be only the starting point of a never ending error-solution-error-warning-error...circle. Go back to 7.1 if possible.

HM666
12-05-2018, 08:50 PM
Thanks for the info the code worked. I have not seen any other warnings or errors so far. I'm on shared hosting so I may not be able to go backwards on PHP. :(

Wisc
12-10-2018, 06:03 AM
HM666 are you on godaddy?

Getting same junk.
You can choose the php version in the control panel (of godaddy) i think myphp

HM666
12-10-2018, 08:24 AM
HM666 are you on godaddy?

Getting same junk.
You can choose the php version in the control panel (of godaddy) i think myphp

Nope have not used GoDaddy in years for hosting. :) I'm on Bluehost, but I have since had this situation solved by the host. :)