Back to Php Cs Fixer

Rule ``mb_str_functions``

doc/rules/alias/mb_str_functions.rst

3.95.11.4 KB
Original Source

========================= Rule mb_str_functions

Replace non multibyte-safe functions with corresponding mb function.

Warning

This rule is RISKY


Risky when any of the functions are overridden, or when relying on the string
byte size rather than its length in characters.

Examples
--------

Example #1
~~~~~~~~~~

.. code-block:: diff

   --- Original
   +++ New
    <?php
   -$a = strlen($a);
   -$a = strpos($a, $b);
   -$a = strrpos($a, $b);
   -$a = substr($a, $b);
   -$a = strtolower($a);
   -$a = strtoupper($a);
   -$a = stripos($a, $b);
   -$a = strripos($a, $b);
   -$a = strstr($a, $b);
   -$a = stristr($a, $b);
   -$a = strrchr($a, $b);
   -$a = substr_count($a, $b);
   +$a = mb_strlen($a);
   +$a = mb_strpos($a, $b);
   +$a = mb_strrpos($a, $b);
   +$a = mb_substr($a, $b);
   +$a = mb_strtolower($a);
   +$a = mb_strtoupper($a);
   +$a = mb_stripos($a, $b);
   +$a = mb_strripos($a, $b);
   +$a = mb_strstr($a, $b);
   +$a = mb_stristr($a, $b);
   +$a = mb_strrchr($a, $b);
   +$a = mb_substr_count($a, $b);

References
----------

- Fixer class: `PhpCsFixer\\Fixer\\Alias\\MbStrFunctionsFixer <./../../../src/Fixer/Alias/MbStrFunctionsFixer.php>`_
- Test class: `PhpCsFixer\\Tests\\Fixer\\Alias\\MbStrFunctionsFixerTest <./../../../tests/Fixer/Alias/MbStrFunctionsFixerTest.php>`_

The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.