3v4l.org

run code in 300+ PHP versions simultaneously
<?php // SHOULD PASS. Passes all 5.0.5 and thereafter. $passwordTestArray[] = 'Aa'; // SHOULD PASS. Passes all 5.0.5 and thereafter. $passwordTestArray[] = 'Æa'; // SHOULD PASS. Fails after 5.2.10. Passes 5.0.5 - 5.2.9 $passwordTestArray[] = 'Aæ'; // SHOULD PASS. Fails after 5.2.10. Passes 5.0.5 - 5.2.9 $passwordTestArray[] = 'Ææ'; // SHOULD FAIL because ß does not have an uppercase equiv. But it passses anyway in 5.0.5 - 5.2.9 $passwordTestArray[] = 'Aß'; // SHOULD FAIL because there is no uppercase ß. // It fails for the wrong reasons in 5.0.5 - 5.2.9 // It passes in 5.2.10 and beyond. $passwordTestArray[] = 'aß'; class PCREFail { static public function verifyComplexity($plainTextPassword) { $re = "/(?=.*[\\p{Ll}])(?=.*[\\p{Lu}]).{2,}/u"; $found = preg_match_all($re, $plainTextPassword, $matches); if ($found) { return $matches; } return $found; } } foreach ($passwordTestArray as $passwordToTest) { var_dump(PCREFail::verifyComplexity($passwordToTest)); }
Output for git.master, git.master_jit, rfc.property-hooks
array(1) { [0]=> array(1) { [0]=> string(2) "Aa" } } array(1) { [0]=> array(1) { [0]=> string(3) "Æa" } } array(1) { [0]=> array(1) { [0]=> string(3) "Aæ" } } array(1) { [0]=> array(1) { [0]=> string(4) "Ææ" } } array(1) { [0]=> array(1) { [0]=> string(3) "Aß" } } int(0)

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
59.74 ms | 402 KiB | 8 Q