@ 2023-05-26T14:09:58Z <?php
function svg_icon(string $icon, ?string $label = null): ?string
{
// These are our possible SVGs
static $config = [
'arrow' => '<svg aria-hidden="true" role="img" focusable="false" width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M21.883 12l-7.527 6.235.644.765 9-7.521-9-7.479-.645.764 7.529 6.236h-21.884v1h21.883z"/></svg>',
'hamburger' => '<svg aria-hidden="true" role="img" focusable="false" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m13 16.745c0-.414-.336-.75-.75-.75h-9.5c-.414 0-.75.336-.75.75s.336.75.75.75h9.5c.414 0 .75-.336.75-.75zm9-5c0-.414-.336-.75-.75-.75h-18.5c-.414 0-.75.336-.75.75s.336.75.75.75h18.5c.414 0 .75-.336.75-.75zm-4-5c0-.414-.336-.75-.75-.75h-14.5c-.414 0-.75.336-.75.75s.336.75.75.75h14.5c.414 0 .75-.336.75-.75z" fill-rule="nonzero"/></svg>',
'close' => '<svg aria-hidden="true" role="img" focusable="false" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.002 2.005c5.518 0 9.998 4.48 9.998 9.997 0 5.518-4.48 9.998-9.998 9.998-5.517 0-9.997-4.48-9.997-9.998 0-5.517 4.48-9.997 9.997-9.997zm0 1.5c-4.69 0-8.497 3.807-8.497 8.497s3.807 8.498 8.497 8.498 8.498-3.808 8.498-8.498-3.808-8.497-8.498-8.497zm0 7.425 2.717-2.718c.146-.146.339-.219.531-.219.404 0 .75.325.75.75 0 .193-.073.384-.219.531l-2.717 2.717 2.727 2.728c.147.147.22.339.22.531 0 .427-.349.75-.75.75-.192 0-.384-.073-.53-.219l-2.729-2.728-2.728 2.728c-.146.146-.338.219-.53.219-.401 0-.751-.323-.751-.75 0-.192.073-.384.22-.531l2.728-2.728-2.722-2.722c-.146-.147-.219-.338-.219-.531 0-.425.346-.749.75-.749.192 0 .385.073.531.219z" fill-rule="nonzero"/></svg>',
];
// If the requested icon doesn't exist, bail
if (!$svg = $config[$icon] ?? null) {
return null;
}
// If we have a label, un-hide the SVG and set the ARIA attribute
if (!empty($label)) {
$svg = str_replace('<svg ', '<svg aria-label="'.esc_attr($label).'"', $svg);
$svg = str_replace('aria-hidden="true"', '', $svg);
}
return $svg;
}
// Samples
echo svg_icon('hamburger', 'Main Menu');
echo PHP_EOL;
echo svg_icon('arrow', 'Click me');
echo PHP_EOL;
echo svg_icon('close');
echo PHP_EOL;
echo svg_icon('nope');
echo PHP_EOL;
// !! DO NOT COPY THIS FUNCTION !!
// This is a stub-function ONLY for the 3v4l.org site.
function esc_attr($string){return $string;}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.4.12 0.013 0.003 24.04 8.4.11 0.011 0.007 20.56 8.4.10 0.011 0.009 18.60 8.4.9 0.010 0.010 22.52 8.4.8 0.009 0.002 18.84 8.4.7 0.005 0.003 18.86 8.4.6 0.009 0.005 19.02 8.4.5 0.005 0.004 18.05 8.4.4 0.011 0.008 20.28 8.4.3 0.009 0.009 21.97 8.4.2 0.003 0.005 17.80 8.4.1 0.003 0.006 22.21 8.3.25 0.013 0.005 18.82 8.3.24 0.012 0.010 17.11 8.3.23 0.012 0.007 16.59 8.3.22 0.003 0.005 19.02 8.3.21 0.008 0.010 18.66 8.3.20 0.004 0.005 16.51 8.3.19 0.010 0.009 16.66 8.3.18 0.006 0.008 16.68 8.3.17 0.009 0.012 17.35 8.3.16 0.007 0.011 17.38 8.3.15 0.012 0.003 18.99 8.3.14 0.003 0.007 18.91 8.3.13 0.006 0.003 18.39 8.3.12 0.008 0.000 19.13 8.3.11 0.010 0.000 20.94 8.3.10 0.000 0.012 16.62 8.3.9 0.008 0.000 26.77 8.3.8 0.003 0.007 16.48 8.3.7 0.004 0.011 16.58 8.3.6 0.009 0.006 16.88 8.3.5 0.016 0.003 16.47 8.3.4 0.007 0.007 20.52 8.3.3 0.012 0.003 18.88 8.3.2 0.007 0.000 24.18 8.3.1 0.008 0.000 24.66 8.3.0 0.000 0.008 26.16 8.2.29 0.009 0.010 20.49 8.2.28 0.010 0.009 16.82 8.2.27 0.011 0.007 17.03 8.2.26 0.008 0.000 16.68 8.2.25 0.009 0.006 16.79 8.2.24 0.000 0.008 19.21 8.2.23 0.006 0.003 22.58 8.2.22 0.007 0.010 24.06 8.2.21 0.005 0.003 26.77 8.2.20 0.006 0.003 16.63 8.2.19 0.013 0.003 18.41 8.2.18 0.007 0.014 18.21 8.2.17 0.007 0.007 18.94 8.2.16 0.009 0.006 22.96 8.2.15 0.004 0.004 25.66 8.2.14 0.008 0.000 24.66 8.2.13 0.004 0.004 26.16 8.2.12 0.009 0.000 20.64 8.2.11 0.008 0.000 22.20 8.2.10 0.003 0.006 20.43 8.2.6 0.007 0.001 17.44 8.1.33 0.012 0.008 22.18 8.1.32 0.011 0.008 15.96 8.1.31 0.013 0.003 16.32 8.1.30 0.008 0.000 18.48 8.1.29 0.003 0.006 30.84 8.1.28 0.011 0.007 25.92 8.1.27 0.008 0.000 24.66 8.1.26 0.000 0.007 26.35 8.1.25 0.007 0.000 28.09 8.1.24 0.003 0.007 18.59 8.1.23 0.009 0.003 18.66
preferences:dark mode live preview ace vim emacs key bindings
31.31 ms | 406 KiB | 6 Q