#51559 closed defect (bug) (fixed)
PHP 8.0: fix fatal error "Non-static method cannot be called statically"
| Reported by: | jrf | Owned by: | SergeyBiryukov |
|---|---|---|---|
| Priority: | normal | Milestone: | 5.6 |
| Component: | Revisions | Version: | 5.6 |
| Severity: | normal | Keywords: | has-patch commit php8 |
| Cc: | Focuses: | coding-standards |
Description
PHP 8 elevates the error level of a number of errors, including the Non-static method cannot be called statically error.
This would previously throw a deprecation warning, but will now throw a fatal error.
In the Text_Diff_Engine_shell::diff() method, the Text_Diff::_getTempDir() method is called statically, which will cause a fatal error in PHP 8.
While this is an external library, it is no longer maintained externally, so fixing this in Core by explicitly declaring the Text_Diff::_getTempDir() method as static.
The method doesn't use $this, so changing it to static is safe and is in line with how the method was documented.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Trac ticket: https://core.trac.wordpress.org/ticket/51559