mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 00:48:54 +00:00
is_callable documented as suggested in user note / bug #21124
credits go to php4 at developersdesk dot com git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@134197 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
7142de1cfb
commit
37b74f7578
1 changed files with 60 additions and 39 deletions
|
@ -1,11 +1,11 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.3 $ -->
|
||||
<!-- $Revision: 1.4 $ -->
|
||||
<!-- splitted from ./en/functions/var.xml, last change in rev 1.87 -->
|
||||
<refentry id="function.is-callable">
|
||||
<refnamediv>
|
||||
<refname>is_callable</refname>
|
||||
<refpurpose>
|
||||
Find out whether the argument is a valid callable construct
|
||||
Verify that the contents of a variable can be called as a function
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
|
@ -17,55 +17,76 @@
|
|||
<methodparam choice="opt"><type>string</type><parameter>callable_name</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
&warn.undocumented.func;
|
||||
Verify that the contents of a variable can be called as a function.
|
||||
This can check that a simple variable contains the name of a valid
|
||||
function, or that an array contains a properly encoded object and
|
||||
function name.
|
||||
</para>
|
||||
<!--
|
||||
<simpara>
|
||||
The <parameter>var</parameter> parameter is the name of a function or method.
|
||||
Also, class or object methods are specified by passing a numerical array with
|
||||
two elements: the class or object, and a method name.
|
||||
</simpara>
|
||||
<simpara>
|
||||
The optional <parameter>syntax_only</parameter> parameter will check
|
||||
only for syntax and defaults to &false; The third <parameter>
|
||||
callable_name</parameter> parameter is also optional.
|
||||
</simpara>
|
||||
<para>
|
||||
In our example below note, however, that despite the implication that
|
||||
<literal>a::b()</literal> is a callable static method, this is not the
|
||||
case.
|
||||
<example>
|
||||
<title>Using <function>is_callable</function></title>
|
||||
<programlisting role="php">
|
||||
The var parameter can be either the name of a function stored in
|
||||
a string variable, or an object and the name of a method within the
|
||||
object, like this:
|
||||
<screen>array( $SomeObject, 'MethodName' )</screen>
|
||||
</para>
|
||||
<para>
|
||||
If the <parameter>syntax_only</parameter> argument is &true; the
|
||||
function only verifies that <parameter>var</parameter> might be a
|
||||
function or method. It will only reject simple variables that are
|
||||
not strings, or an array that does not have a valid structure to be
|
||||
used as a callback. The valid ones are supposed to have only 2
|
||||
entries, the first of which is an object or a string, and the
|
||||
second a string.
|
||||
</para>
|
||||
<para>
|
||||
The <parameter>callable_name</parameter> argument receives the
|
||||
"callable name". In the example below it's
|
||||
"someClass:someMethod". Note, however, that despite the
|
||||
implication that someClass::SomeMethod() is a callable static
|
||||
method, this is not the case.
|
||||
</para>
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<?php
|
||||
class a
|
||||
{
|
||||
var $c;
|
||||
|
||||
function b() {
|
||||
return($this->c);
|
||||
}
|
||||
<? php
|
||||
// How to check a variable to see if it can be called
|
||||
// as a function.
|
||||
|
||||
//
|
||||
// Simple variable containing a function
|
||||
//
|
||||
|
||||
function someFunction() {
|
||||
}
|
||||
|
||||
$d = new a;
|
||||
$functionVariable = 'someFunction';
|
||||
|
||||
if(is_callable(array($d, 'b'), FALSE, $name)) {
|
||||
var_dump( is_callable( $functionVariable, false, $callable_name )); // bool(true)
|
||||
|
||||
echo $callable_name, "\n"; // someFunction
|
||||
|
||||
//
|
||||
// Array containing a method
|
||||
//
|
||||
|
||||
class someClass {
|
||||
|
||||
function someMethod() {
|
||||
}
|
||||
|
||||
echo $name;
|
||||
}
|
||||
|
||||
/* The above will print:
|
||||
|
||||
a::
|
||||
$anObject = new someClass();
|
||||
|
||||
$methodVariable = array( $anObject, 'someMethod' );
|
||||
|
||||
var_dump( is_callable( $methodVariable, true, $callable_name )); // bool(true)
|
||||
|
||||
echo $callable_name, "\n"; // someClass:someMethod
|
||||
|
||||
*/
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
-->
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
|
|
Loading…
Reference in a new issue