❶ php獲取、檢查類名、函數名、方法名的函數方法
1.function_exists()
-
Return
TRUE
if
the
given
function
has
been
defined
2.is_callable()
-
檢測參數是否為合法的可調用結構
3.class_exists()
-
檢查類是否已定義
4.method_exists()
-
檢查類的方法是否存在
__FUNCTION__
函數名稱(PHP
4.3.0
新加)。自
PHP
5
起本常量返回該函數被定義時的名字(區分大小寫)。在
PHP
4
中該值總是小寫字母的。
__CLASS__
類的名稱(PHP
4.3.0
新加)。自
PHP
5
起本常量返回該類被定義時的名字(區分大小寫)。在
PHP
4
中該值總是小寫字母的。
__METHOD__
類的方法名(PHP
5.0.0
新加)。返回該方法被定義時的名字(區分大小寫)。
註:這些常量前後均是兩個下劃線。
get_class(class
name);//取得當前語句所在類的類名
get_class_methods(class
name);//取得class
name
類的所有的方法名,並且組成一個數組
get_class_vars(class
name);//取得class
name
類的所有的變亮名,並組成一個數組
❷ php列出一個類文件所有方法名稱
$class=new Class();
$arr=get_class_methods(get_calss($class));
print_r($arr);
就可以看到 了,
主要是用了 get_class_methods( sttring class_name) 函數,
❸ php 怎麼獲取當前函數名稱
php提供的一些系統常量可以完成這些
php獲取當前方法名(函數名) __FUNCTION__
php獲取當前類名 __CLASS__ 或者 get_class($this);
php獲取本類所有的方法名 get_class_methods($this);實例如下
class Test{
function kkk(){
return get_class_methods(Test);
}
function meme(){
}
function myfunction(){
}
}
$y=new Test();
print_r($y->kkk());
返回結果如下
Array ( [0] => kkk [1] => meme [2] => myfunction )
php獲取類中所有的成員屬性,返回一個數組 get_class_vars(class name); 實例如下
class Test{
public $tt="dddd";
public $aa="aaaaaaaa";
function kkk(){
return get_class_vars(Test);
}
}
$y=new Test();
print_r($y->kkk());
返回結果如下
Array ( [tt] => dddd [aa] => aaaaaaaa )
❹ PHP中如何獲得當前類的名稱,而實例化後獲取子類的名稱
php 4.3以後新增了一個魔術常量__CLASS__,用來獲得當前class名稱。但是在下面的代碼中,卻不work。class A {
function showclass() {
echo __CLASS__;
}
}
class B extends A {}
A::showclass();
B::showclass(); 這段代碼會打出兩個A,而不是預想中的AB。下面這段代碼,利用debug_backtrace來獲得當前class名,可惜只能在php4上面work,到了php5以上,測試結果全部都是AA-___-class A {
function showclass() {
$backtrace = debug_backtrace();
echo $backtrace[0]['class'];
}
}
class B extends A {} 補充一個可以在php4/php5下work的代碼class A {
function showclass() {
$backtrace = debug_backtrace();
echo ((int)PHP_VERSION> 4) ?
get_class($backtrace[0]['object']) : $backtrace[0]['class'];
}
}
class B extends A {}
❺ PHP怎麼獲取很多Class文件裡面所有Class的方法
實例化這個class,然後就可以調用class裡面的所有方法了。
實例化的方法:
首先在需要調用的php文件裡面用include引入這個class文件。
include'你的class文件';
然後進行實例化,比如class名為test。
$m=newtest();
實例化後可以調用class裡面的任何方法,例如有個方法名為。
$m->();
這樣就成功的完成了。
❻ thinkphp5 怎麼獲取控制器下所有方法名稱
當前操作名稱 APP_PATH : 當前項目目錄 APP_NAME : 當前項目名稱 這些都是一些系統常量,可以在控制器裡面直接調用 比如說 echo __APP__ ,
❼ thinkphp5 怎麼獲取當前的模塊,控制器和方法名
問題解析:
thinkphp5系列需要獲取當前的模塊、控制器以及方法名稱,可以使用自帶的Request類,也可以使用request助手函數。接下來舉例說明:
假設我們現在訪問的地址是index/member/add,我們來獲取這個地址的模塊、控制器、方法名稱
1、獲取模塊名:
echo"當前模塊名稱是:".request()->mole();
輸出結果:
❽ PHP-php怎樣自動獲取被調用的類名
(PHP 4, PHP 5)
get_class -- 返回對象的類名
說明
編輯
string get_class ( [object obj] )
返回對象實例 obj 所屬類的名字。如果 obj 不是一個對象則返回 FALSE。
注: 在 PHP 擴展庫中定義的類返回其原始定義的名字。在 PHP 4 中 get_class() 返回用戶定義的類名的小寫形式,但是在 PHP 5 中將返回類名定義時的名字,如同擴展庫中的類名一樣。
注: 自 PHP 5 起,如果在對象的方法中調用則 obj 為可選項。
<?php
classfoo{
functionfoo()
{
//implementssomelogic
}
functionname()
{
echo"Mynameis",get_class($this)," ";
}
}
//createanobject
$bar=newfoo();
//externalcall
echo"Itsnameis",get_class($bar)," ";
//internalcall
$bar->name();
?>
輸出:
Its name is foo
My name is foo
❾ php有沒有什麼函數可以獲取一個方法中的參數名和參數類型的
/**
*獲取一個函數的依賴
*@paramstring|callable$func
*@paramarray$param調用方法時所需參數形參名就是key值
*@returnarray返回方法調用所需依賴
*/
functiongetFucntionParameter($func,$param=[]){
if(!is_array($param)){
$param=[$param];
}
$ReflectionFunc=newReflectionFunction($func);
$depend=array();
foreach($ReflectionFunc->getParameters()as$value){
if(isset($param[$value->name])){
$depend[]=$param[$value->name];
}elseif($value->isDefaultValueAvailable()){
$depend[]=$value->getDefaultValue();
}else{
$tmp=$value->getClass();
if(is_null($tmp)){
thrownewException("{$class}");
}
$depend[]=$this->get($tmp->getName());
}
}
return$depend;
}
functiontest($a,$b=20){
echo$a,',',$b;
}
$depend=getFucntionParameter('test',['a'=>30,'b'=>40]);
call_user_func_array('test',$depend);//30,40
上面的函數是我開發的框架的容器的方法。
php提供了很完整的反射機制。不但可以反射函數,還可以反射方法,反射類構造函數。