mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-27 06:18:56 +00:00

What's done: the migration guide itself, updates to existing functions and functionality, and new language features. What's not done: stub pages for new functions and methods. (I'd rather get this in now, though, than have it languish on my hard drive any longer so that other people can contribute.) What could use help: the generator chapter is pretty rough and ready. Better examples would be awesome. I certainly won't argue if somebody wants to add the function stubs, either. git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@328430 c90b9560-bf6c-de11-be94-00142212c4b1
224 lines
5.9 KiB
XML
224 lines
5.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<refentry xml:id="function.empty" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>empty</refname>
|
|
<refpurpose>Determine whether a variable is empty</refpurpose>
|
|
</refnamediv>
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type>bool</type><methodname>empty</methodname>
|
|
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Determine whether a variable is considered to be empty. A variable is considered empty if it does not exist or if its value equals &false;. <function>empty</function> does not generate a warning if the variable does not exist.
|
|
</para>
|
|
</refsect1>
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>var</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Variable to be checked
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Prior to PHP 5.5, <function>empty</function> only supports variables;
|
|
anything else will result in a parse error. In other words, the
|
|
following will not work: <command>empty(trim($name))</command>.
|
|
Instead, use <command>trim($name) == false</command>.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
No warning is generated if the variable does not exist.
|
|
That means <function>empty</function> is essentially the
|
|
concise equivalent to <command>!isset($var) || $var == false</command>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
Returns &false; if <parameter>var</parameter> exists and has a non-empty, non-zero value.
|
|
Otherwise returns &true;.
|
|
</para>
|
|
<para>
|
|
The following things are considered to be empty:
|
|
<simplelist>
|
|
<member><literal>""</literal> (an empty string)</member>
|
|
<member><literal>0</literal> (0 as an integer)</member>
|
|
<member><literal>0.0</literal> (0 as a float)</member>
|
|
<member><literal>"0"</literal> (0 as a string)</member>
|
|
<member>&null;</member>
|
|
<member>&false;</member>
|
|
<member><literal>array()</literal> (an empty array)</member>
|
|
<member><literal>$var;</literal> (a variable declared, but without a value)</member>
|
|
</simplelist>
|
|
</para>
|
|
</refsect1>
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<para>
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>5.5.0</entry>
|
|
<entry>
|
|
<para>
|
|
<function>empty</function> now supports expressions, rather than only
|
|
variables.
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>5.4.0</entry>
|
|
<entry>
|
|
<para>
|
|
Checking non-numeric offsets of strings returns &true;.
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>5.0.0</entry>
|
|
<entry>
|
|
<para>
|
|
Objects with no properties are no longer considered empty.
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
</refsect1>
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title>
|
|
A simple <function>empty</function> / <function>isset</function>
|
|
comparison.
|
|
</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$var = 0;
|
|
|
|
// Evaluates to true because $var is empty
|
|
if (empty($var)) {
|
|
echo '$var is either 0, empty, or not set at all';
|
|
}
|
|
|
|
// Evaluates as true because $var is set
|
|
if (isset($var)) {
|
|
echo '$var is set even though it is empty';
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<example>
|
|
<title><function>empty</function> on String Offsets</title>
|
|
<para>
|
|
PHP 5.4 changes how <function>empty</function> behaves
|
|
when passed string offsets.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$expected_array_got_string = 'somestring';
|
|
var_dump(empty($expected_array_got_string['some_key']));
|
|
var_dump(empty($expected_array_got_string[0]));
|
|
var_dump(empty($expected_array_got_string['0']));
|
|
var_dump(empty($expected_array_got_string[0.5]));
|
|
var_dump(empty($expected_array_got_string['0.5']));
|
|
var_dump(empty($expected_array_got_string['0 Mostel']));
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs.53;
|
|
<screen>
|
|
<![CDATA[
|
|
bool(false)
|
|
bool(false)
|
|
bool(false)
|
|
bool(false)
|
|
bool(false)
|
|
bool(false)
|
|
]]>
|
|
</screen>
|
|
&example.outputs.54;
|
|
<screen>
|
|
<![CDATA[
|
|
bool(true)
|
|
bool(false)
|
|
bool(false)
|
|
bool(false)
|
|
bool(true)
|
|
bool(true)
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</refsect1>
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
¬e.language-construct;
|
|
<note>
|
|
<para>
|
|
When using <function>empty</function> on inaccessible object properties,
|
|
the <link linkend="object.isset">__isset()</link>
|
|
overloading method will be called, if declared.
|
|
</para>
|
|
</note>
|
|
</refsect1>
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>isset</function></member>
|
|
<member><link linkend="object.isset">__isset()</link></member>
|
|
<member><function>unset</function></member>
|
|
<member><function>array_key_exists</function></member>
|
|
<member><function>count</function></member>
|
|
<member><function>strlen</function></member>
|
|
<member><link linkend="types.comparisons">The type comparison tables</link></member>
|
|
</simplelist>
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<!-- 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
|
|
-->
|