mirror of
https://github.com/php/doc-en.git
synced 2026-03-23 23:32:18 +01:00
This commit rewrites the whole type section to (hopefully) be better structured and future proof for further additions to the type system. * Each type now gets their individual page instead of being shoved in the type declaration page. * A type system page is added which describes PHP's type system, regardless if it is possible to declare the type in userland or not. Therefore, the type declaration page only has information related to writing type declarations in userland. * The description of strict_type and the type coercion is moved into the type juggling page. * Remove outdated information in string implementation section * Add paragraph about using non string in string context can throw Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>
40 lines
1.1 KiB
XML
40 lines
1.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<sect1 xml:id="language.types.never">
|
|
<title>Never</title>
|
|
|
|
<para>
|
|
<type>never</type> is a return-only type indicating the function
|
|
does not terminate. This means that it either calls <function>exit</function>,
|
|
throws an exception, or is an infinite loop.
|
|
Therefore, it cannot be part of a
|
|
<link linkend="language.types.type-system.composite.union">union type</link>
|
|
declaration. Available as of PHP 8.1.0.
|
|
</para>
|
|
<para>
|
|
<type>never</type> is, in type theory parlance, the bottom type.
|
|
Meaning it is the subtype of every other type and can replace any other
|
|
return type during inheritance.
|
|
</para>
|
|
|
|
</sect1>
|
|
<!-- 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
|
|
-->
|