A. 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 )
B. PHP怎麼調用其他類的方法
在Java的調用方法是import,而在PHP中沒有import這個函數,一般PHP中調用其他類是用到require(),具體PHP調用其他類的方法如下:
1、首先應該先有一個文件名為tool.php的文件,在文件中聲明一個類。
(2)php調用當前類方法擴展閱讀:
類是變數與作用於這些變數的函數的集合。使用下面的語法定義一個類:
<?php
class Cart { var $items; // 購物車中的物品
// 將 $num 個 $artnr 物品加入購物車
function add_item($artnr, $num) {
$this->items[$artnr] += $num;
} // 將 $num 個 $artnr 物品從購物車中取出
function remove_item($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num; return true;
} elseif
($this->items[$artnr] == $num) {
unset($this->items[$artnr]); return true;
} else {
return false; }
}
} ?>
上面的例子定義了一個 Cart 類,這個類由購物車中的商品構成的數組和兩個用於從購物車中添加和刪除商品的函數組成。
C. php 類中方法之間參數怎麼調用
class A
{
public $bb,$cc;
function othersomething()
{
return $this->cc;
}
}
function dosomething()
{
$bb = $this->bb;
$othersomething = $this->othersomething();
}
方法的參數是新定義一個變數,注意是新定義,方法結束自動銷毀,
2.PHP類中方法定義的參數與調用時的參數名稱可以不同。
帶默認值的就是指當這些參數沒有給出的時候可以按照預定義內容進行賦值(按參數順序調用)。
functiontext($i,$a="test1",$test="test2"){
echo"<h1>{$i}</h1>";
echo"<h1>{$a}</h1>";
echo"<h1>{$test}</h1>";
}
2.調用:
text("test");
----顯示
test
test1
test2
text("test","test3","test4");
----顯示
test
test3
test4
D. 在php中如何設置類的屬性,如何調用類的方法
PHP訪問類的屬性、方法使用箭頭語法(->)。這里我給你一個例子供你參考:
<?php
classMyClass{//定義MyClass類
public$name;//定義了一個公有屬性
protected$_age;//定義了一個保護屬性
private$_email;//定義了一個私有屬性
publicfunctionmy_method(){//定義my_method方法
}
protectedfunction_my_method2(){//定義_my_method2方法
}
}
$obj=newMyClass;//實例化
$obj->name='noname';//設置name屬性
$obj->_age=12;//這是錯誤的,不能設置保護屬性
$obj->address='KingStreet.'//設置一個未聲明的屬性是允許的,效果和公有屬性類似,但未賦值前不能使用。
$obj->my_method()//調用公有方法
$obj->_my_method2();//這是錯誤的,不能調用保護方法
你需要理解繼承、公有、保護和私有的概念。
繼承:子類繼承父類的公有、保護屬性和方法。
公有:類的實例可以訪問的屬性和方法。
保護:只能在類的內部及其子類內部訪問的屬性和方法。
私有:只能在類的內部訪問的屬性和方法。
這是個很基礎的問題,建議你多看書。
E. php中根據類名怎麼動態獲取已定義的類對象並動態調用某個方法
在 PHP 中,可以通過類名來動態獲取已定義的類對象,然後再調用類的方法。可以使用以下兩個函數來實現:
1. `class_exists()` 函數可以判斷一個類是否已經定義。
2. `call_user_func()` 函數可以動態調用一個方法。
下面是示例代碼:
```
// 判斷類是否已定義
if (class_exists('ClassName')) {
// 實例化類對象
$obj = new ClassName();
// 動態調用方法
call_user_func(array($obj, 'methodName'));
}
```
在這個示例中,`ClassName` 是要動態獲取的類名,`methodName` 是要調用的方法名。首先,使用 `class_exists()` 函數判斷類是否已經定義,如果已經定義,則使用 `new` 關鍵字實例化類對象,並將其賦值給 `$obj` 變數。然後,使用 `call_user_func()` 函數動態調用方法。`array($obj, 'methodName')` 表示要調用 `$obj` 對象的 `methodName()` 方法。
需要注意的是,如果要調用的方法需要傳遞參數,可以在 `call_user_func()` 函數的第二個參數之後依次添加參數值。例如,如果要傳遞一個參數,可以這樣調用:
```
call_user_func(array($obj, 'methodName'), $param1);
```
其中,`$param1` 是要傳遞的參數值。