View these cheat sheets live at PHPCheatsheets.com
Much extended version of the Blueshoes PHP cheat sheet for variable type juggling.
- Lots of extra variables being tested.
- Lots of extra comparisons and tests.
- Variable arithmetic.
- Results available for a wide variety of PHP versions.
Suggestions for additional test variables, additional comparisons, tests or other improvements are very welcome. Just open an issue or send in a pull request for it.
Static versions of the cheatsheets are generated using a variety of PHP versions.
These PHP versions will include:
- [Always] Latest release for each minor PHP version at the time of (re-)generation of the static sheets.
- [Always] The PHP versions included in the last three Ubuntu, Debian and CentOS LTS releases.
- [Selectively] Popular minor releases based on worldwide usage statistics at the time of (re-)generation of the static sheets.
- [Selectively] Previously included versions if no other close minor release will be included.
In general, a balance is sought between significance and variety.
- Elephpant photo by Jacob Westhoff.
- Sad Elephpant photo by Gluek.
- New tests:
is_iterable()
in variable tests (PHP 7.1+ only).is_countable()
in variable tests (PHP 7.3+ only).version_compare()
in variable comparisons.
- Renewed static sheets:
- Added static sheets for PHP 7.3.4, 7.3.0, 7.2.17, 7.2.13, 7.2.6, 7.2.3, 7.1.28, 7.1.18, 7.1.5, 7.0.33, 7.0.27, 5.6.40, 5.6.30
- Removed static sheet generation for PHP 7.2.0, 7.1.12, 7.1.7, 7.1.0, 7.0.26, 7.0.21, 7.0.14, 5.6.32, 5.6.29, 5.6.25, 5.5.16, 5.4.41, 5.3.27, 5.2.6, 5.0.4
- Updated CastToType submodule to v 2.0.1.
- Account for Exception text changes in PHP 7.3.
- Bugfix: arrays and objects are now reset before each test.
Also:
- The website is now available over SSL.
- Minor language fixes.
- Updated the code for the social media and donate buttons.
- Removed the tablesorting feature from the
sitemap.xml
file. - Minor tweaks to the Travis tests.
- General housekeeping/CS fixes.
Note: This will be the last version with support for PHP < 5.4.
- Renewed static sheets:
- Added static sheets for PHP 7.2.0, 7.1.12, 7.0.26, 5.6.32, 5.6.29, 5.6.21
- Removed static sheet generation for PHP 7.2.0-beta1, 7.1.3, 7.0.17, 5.6.31, 5.6.28, 5.6.20, 5.5.35, 5.4.36
- Renewed static sheets:
- Added static sheets for PHP 7.2.0-beta1, 7.1.7, 7.0.21, 7.0.19, 7.0,14, 5.6.31
- Removed static sheet generation for PHP 7.0.12, 7.0.0, 5.6.30, 5.6.0, 5.2.9-2.
- Renewed static sheets:
- Added static sheets for PHP 7.1.3, 7.0.17, 7.0,12, 5.6.30
- Removed static sheet generation for PHP 7.0.13, 7.0.10.
- Renewed static sheets:
- Added static sheets for PHP 7.1.0, 7.0.13, 7.0.10, 5.6.28, 5.6.25, 5.5.38, 5.5.35.
- Removed static sheet generation for PHP 7.1.0-alpha3, 7.0.8, 7.0.6, 5.6.23, 5.6.13, 5.5.37, 5.5.33, 5.5.3.
- The cheatsheets for PHP 4 are no longer actively maintained (regenerated) except for the version switcher menu.
- Renewed static sheets:
- Added static sheets for PHP 7.1.0-alpha3, 7.0.8, 7.0.6, 5.6.23, 5.6.20, 5.6.16, 5.5.37
- Removed static sheet generation for PHP 7.0.2, 5.6.19, 5.6.17, 5.6.15, 5.6.9, 5.5.28, 5.3.2.
- Renewed static sheets:
- Added static sheets for PHP 7.0.4, 7.0.2, 5.6.19, 5.6.17, 5.5.33, 5.5.22.
- Removed static sheet generation for PHP 5.6.11, 5.5.26, 5.5.21, 5.4.43, 5.4.39.
- Renewed static sheets:
- Added static sheets for PHP 7.0.0.
- Removed static sheet generation for PHP 7.0.0-RC6.
- Fixed static sheets to display the correct 'live' version (moved to server running PHP 5.6.8 - was 5.4.13).
- Renewed static sheets based on currently available and most used versions:
- Added static sheets for PHP 7.0.0-RC6, 5.6.15, 5.6.13, 5.6.11, 5.6.9, 5.6.7, 5.5.30, 5.5.28, 5.5.21, 5.4.45, 5.4.27, 5.4.41, 5.4.43.
- Removed static sheet generation for PHP 7.0.0-alpha1, 5.6.10, 5.6.8, 5.6.5, 5.6.2, 5.5.24, 5.5.22, 5.4.42, 5.4.33, 5.4.20, 5.4.11.
- Fixed "division by zero" error catching for PHP7 as the Exception hierarchy changed in PHP7-alpha2.
- Some other minor improvements.
- New tests:
<=>
in variable comparisons (PHP7+ only).$x ?? ...
in variable tests (PHP7+ only).intdiv()
in variable arithmetics (PHP7+ only).preg_match()
with unicode property codes in variable string tests (PHP5.1+).
- Added two new variables specifically for the unicode property tests.
- Renewed static sheets based on currently available and most used versions:
- Added static sheets for PHP 7.0.0-alpha1, 5.6.10, 5.6.8, 5.6.0, 5.5.26, 5.5.24, 5.5.22, 5.4.42, 5.4.39, 5.4.36.
- Removed static sheet generation for PHP 5.6.4, 5.5.21, 5.5.20, 5.5.18, 5.4.37, 5.4.35 and 4.3.9.
- Updated CastToType submodule to v2.0 which brings object casting via that class for all PHP versions in line with PHP7 and fixes a bug in object casting for PHP <= 5.1.
Also:
- Fixed a hiccup where the "Filter" tab would be shown in PHP 5.1, while the filter extension is only available in PHP 5.2+.
- Fixed a bug on the "test" cheatsheet where the row variable header would not display properly in the right hand column on low PHP versions.
- Improved grouping of PHP error messages.
- Added some more user facing information about the tests run and version quirks.
- Fixed js error in sitemap stylesheet.
- Fixed a faulty redirect in .htaccess.
- Minor UI improvements.
- Tidying up.
- Added sitemaps.
- New tests:
pow()
in variable arithmetic.**
(PHP 5.6+) in variable arithmetic..
(concatenation) in variable arithmetic - for want of better place.
- Added two new float variables.
- Lots of usability improvements:
- Select PHP version via dropdown.
- PHP version persists across sheets.
- Variable legend now auto-expand when user clicks on variable 'footnote' link.
- 'Pretty' (semantic) urls.
- Better window titles.
- Better error handling (404).
- Static sheets now available in lots more versions (30!), including PHP 5.5, 5.6 which weren't available until now. Retired some older versions which have close versions available anyhow.
- Fixed:
- Variable legend for binary integer was missing.
Also:
- Added donate to charity button.
- Change over to absolute rather than relative urls.
- Minor html and css fixes.
- Script to autogen (nearly) all static sheets.
- Updated cast-to-type submodule.
- Upgraded jQuery and jQuery UI to 1.11.2.
- General tidying up.
- New tests:
abs()
in variable testing.
- New pages:
- 'other cheatsheets'.
- 'about'.
- New site styling for own domain.
Also:
- Added twitter & LinkedIn share buttons.
- Upgraded jQuery to 1.11.0 and jQuery UI to v 1.10.4.
- Cleaned up HTML.