① 在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();//這是錯誤的,不能調用保護方法
你需要理解繼承、公有、保護和私有的概念。
繼承:子類繼承父類的公有、保護屬性和方法。
公有:類的實例可以訪問的屬性和方法。
保護:只能在類的內部及其子類內部訪問的屬性和方法。
私有:只能在類的內部訪問的屬性和方法。
這是個很基礎的問題,建議你多看書。
② 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` 是要傳遞的參數值。
③ 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