Skip to content

Extended version of the Blueshoes PHP cheat sheet for variable type juggling

License

Notifications You must be signed in to change notification settings

jrfnl/PHP-cheat-sheet-extended

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Aug 3, 2019
9524e48 · Aug 3, 2019
Apr 9, 2019
Apr 9, 2019
Jun 24, 2018
Apr 9, 2019
Aug 3, 2019
Jan 14, 2018
Sep 6, 2013
Apr 9, 2019
Aug 4, 2018
Aug 4, 2018
Dec 12, 2015
Apr 7, 2019
Dec 4, 2016
Apr 7, 2019
Aug 27, 2013
Apr 9, 2019
Apr 9, 2019
Jun 24, 2018
Dec 7, 2018
Dec 7, 2018
Dec 7, 2018
Jun 24, 2018
Dec 7, 2018
Apr 7, 2019
Feb 11, 2014
Jun 24, 2018
Jun 24, 2018
Apr 9, 2019
Apr 9, 2019
Apr 9, 2019

Repository files navigation

PHP-cheat-sheet-extended

GitHub license Build Status Scrutinizer Code Quality

View these cheat sheets live at PHPCheatsheets.com

Much extended version of the Blueshoes PHP cheat sheet for variable type juggling.

Features:

  • Lots of extra variables being tested.
  • Lots of extra comparisons and tests.
  • Variable arithmetic.
  • Results available for a wide variety of PHP versions.

Contributing:

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.

About the static versions of the sheets:

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.

Credits:

Changelog:

1.4.0 (April 9 2019): PHP 7.3 and more

  • 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.

1.3.8 (November 30 2017): PHP 7.2 has landed

  • 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

1.3.7 (July 26 2017): PHP 7.2 beta 1 release

  • 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.

1.3.6 (March 23 2017)

  • 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.

1.3.5 (Dec 3 2016): PHP 7.1 has been released: new arithmetic exceptions

  • 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.

1.3.4 (Jul 9 2016): What will PHP 7.1 bring ?

  • 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.

1.3.3 (Mar 11 2016)

  • 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.

1.3.2 (Dec 3 2015): PHP 7 is here!

  • 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).

1.3.1 (Nov 2015): PHP 7 is nearly upon us!

  • 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.

1.3 (Jun 2015): Get ready for PHP 7!

  • 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.

1.2.0.1 (Feb 2015)

  • Added sitemaps.

1.2 (Feb 2015)

  • 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.

1.1 (Feb 2014) - move to own domain.

  • 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.

1.0 (Sep 2013) - first public version.