3v4l.org

run code in 300+ PHP versions simultaneously
<?php $s0 = 'Α'; $s1 = 'А'; $s2 = 'A'; $s3 = 'a'; $s4 = 'а'; $err = null; $sp = new \Spoofchecker(); $sp->setAllowedLocales('en_EN'); $sp->setChecks(\Spoofchecker::SINGLE_SCRIPT_CONFUSABLE | \Spoofchecker::MIXED_SCRIPT_CONFUSABLE | \Spoofchecker::WHOLE_SCRIPT_CONFUSABLE); // non-unicode, but enough to differentiate var_dump(ord($s0), ord($s1), ord($s2), ord($s3), ord($s4)); // 206, 208, 65, 97, 208 var_dump('Confusable 0-1: ' . $sp->areConfusable($s0, $s1, $err), 'Error: ' . $err); // no, 0 var_dump('Confusable 1-2: ' . $sp->areConfusable($s1, $s2, $err), 'Error: ' . $err); // no, 0 var_dump('Confusable 2-3: ' . $sp->areConfusable($s2, $s3, $err), 'Error: ' . $err); // no, 0 var_dump('Confusable 3-4: ' . $sp->areConfusable($s3, $s4, $err), 'Error: ' . $err); // yes, 6 var_dump('Suspicious #0: ' . $sp->isSuspicious($s0, $err), 'Error: ' . $err); // no, 0 var_dump('Suspicious #1: ' . $sp->isSuspicious($s1, $err), 'Error: ' . $err); // no, 0 var_dump('Suspicious #2: ' . $sp->isSuspicious($s2, $err), 'Error: ' . $err); // no, 0 var_dump('Suspicious #3: ' . $sp->isSuspicious($s3, $err), 'Error: ' . $err); // yes, 4 var_dump('Suspicious #4: ' . $sp->isSuspicious($s4, $err), 'Error: ' . $err); // yes, 4
Output for git.master, git.master_jit
int(206) int(208) int(65) int(97) int(208) string(17) "Confusable 0-1: 1" string(7) "Error: " string(17) "Confusable 1-2: 1" string(7) "Error: " string(16) "Confusable 2-3: " string(7) "Error: " string(17) "Confusable 3-4: 1" string(7) "Error: " string(15) "Suspicious #0: " string(7) "Error: " string(15) "Suspicious #1: " string(7) "Error: " string(15) "Suspicious #2: " string(7) "Error: " string(16) "Suspicious #3: 1" string(7) "Error: " string(16) "Suspicious #4: 1" string(7) "Error: "
Output for rfc.property-hooks
int(206) int(208) int(65) int(97) int(208) string(17) "Confusable 0-1: 1" string(8) "Error: 6" string(17) "Confusable 1-2: 1" string(8) "Error: 6" string(16) "Confusable 2-3: " string(8) "Error: 0" string(17) "Confusable 3-4: 1" string(8) "Error: 6" string(15) "Suspicious #0: " string(8) "Error: 0" string(15) "Suspicious #1: " string(8) "Error: 0" string(15) "Suspicious #2: " string(8) "Error: 0" string(16) "Suspicious #3: 1" string(8) "Error: 4" string(16) "Suspicious #4: 1" string(8) "Error: 4"

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:
45.46 ms | 402 KiB | 8 Q