- Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- {([]){}()} is balanced {C{}[{[a]}RqhL]{y2}} is balanced {([]){]()} is not balanced
<?php
function Parenthesis($string) {
$opening = array('}' => '{', ']' => '[', ')' => '(');
$parens = array();
foreach (str_split($string) as $char) {
switch ($char) {
case '{':
case '[':
case '(':
$parens[] = $char;
break;
case '}':
case ']':
case ')':
if (!count($parens) || array_pop($parens) != $opening[$char]) return false;
break;
default:
break;
}
}
return count($parens) === 0;
}
function check_balanced($string) {
echo "$string is " . (Parenthesis($string) ? '' : 'not ') . "balanced\n";
}
check_balanced("{([]){}()}");
check_balanced("{C{}[{[a]}RqhL]{y2}}");
check_balanced("{([]){]()}");