php-doc-en/reference/ctype/book.xml
Christoph M. Becker 1af58f6311
Fix GH-1568: No info on return value of ctype_alnum() in case of empty string
We explicitly add the info to every ctype's function return value
section.

We also overhaul the ctype introduction section by removing obsolete
information, adding a warning about the deprecation of int parameters,
and removing personalization.
2022-05-06 17:53:06 +02:00

81 lines
2.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<book xml:id="book.ctype" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="bundled" ?>
<title>Character type checking</title>
<titleabbrev>Ctype</titleabbrev>
<preface xml:id="intro.ctype">
&reftitle.intro;
<para>
The functions provided by this extension check whether a character
or string falls into a certain character class according to the
current locale (see also <function>setlocale</function>).
</para>
<para>
When called with an integer argument these functions
behave exactly like their C counterparts from
<filename>ctype.h</filename>.
It means that if an integer smaller than 256 is passed, it will use the
ASCII value of it to see if it fits in the specified range (digits are in
0x30-0x39). If the number is between -128 and -1 inclusive then 256 will
be added and the check will be done on that.
</para>
&note.ctype.parameter.non-string;
<para>
When called with a string argument they will check
every character in the string and will only return
&true; if every character in the string matches the
requested criteria. &ctype.result.empty-string;
</para>
<para>
Passing anything else but a string or integer will
return &false; immediately.
</para>
<para>
It should be noted that ctype functions are always preferred over
regular expressions, and even to some equivalent <literal>"str_*"</literal> and <literal>"is_*"</literal> functions.
This is because of the fact that ctype uses a native C library and thus
processes significantly faster.
</para>
<note>
<para>
These functions are not related to the Python "ctypes" library at all.
The extension name stems from the <filename>ctype.h</filename> C header
file that their C equivalents are defined in.
</para>
<para>
This extension also predates Python "ctypes" so any confusion
caused by this naming is hardly PHP's fault.
</para>
</note>
</preface>
&reference.ctype.setup;
&reference.ctype.constants;
&reference.ctype.reference;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->