PHP中的is_callable函數

來源:互聯網
上載者:User

is_callable — 驗證變數的內容是否能夠進行函數調用

 

Descriptionbool  is_callable ( callback $name [, bool $syntax_only =
false [, string &$callable_name ]] )驗證變數的內容是否能夠進行函數調用。可以用於檢查一個變數是否包含一個有效函數名稱,或者一個包含經過合適編碼的函數和成員函數名的數組。Parameters(參數)
name

既可以是一個字串類型的函數名稱,也可以是一個對象和成員函數名的組合數組,比如:array($SomeOject, 'MethodName')

syntax_only

如果設定為true,那麼只是驗證name是一個函數或者方法,函數僅僅會拒絕不是字串,亦或是結構不合法的數組作為回呼函數。合法結構是指一個包含兩個成員的數組,第一個是對象或者字串,第二個是一個字串。

 

callable_name

接收“調用名稱”,在下面的例子裡它是“someClass::someMethod"。請注意儘管someClass::someMethod()是一個可調用的靜態方法,但是這裡並不是真的表示一個靜態方法

 

Return Values(傳回值)

 

如果可調用返回true,否則返回false。

 

 

Examples

 

Example #1 is_callable() example

<?php
//  How to check a variable to see if it can be called
//  as a function.

//
//  Simple variable containing a function
//

function someFunction() 
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Array containing a method
//

class someClass {

  function someMethod() 
  {
  }

}

$anObject=new someClass();

$methodVariable=array($anObject,'someMethod');

var_dump(is_callable($methodVariable,true,$callable_name));  //bool(true)

echo $callable_name,
"\n"; 
//someClass::someMethod

?>參考:I haven't seen anyone note this before, but is_callable will correctly determine the existence of methods made with __call. The
method_exists function will not.
is_callable判斷是回去調用__call魔術方法來判斷,而method_exists不會

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.