php訪問類方法
Ⅰ php怎麼調用其他類的方法
在Java的調用方法是import,而在PHP中沒有import這個函數,一般PHP中調用其他類是用到require(),具體PHP調用其他類的方法如下:
1、首先應該先有一個文件名為tool.php的文件,在文件中聲明一個類。
(1)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 類,這個類由購物車中的商品構成的數組和兩個用於從購物車中添加和刪除商品的函數組成。
Ⅱ php中怎麼類外訪問私有方法
你問的是私有方法還是私有屬性?
你說的__get __set 是訪問和設置屬性用的。
__call才是訪問方法用的。
但這兩種都需要修改原始類,既然有這個許可權了,那私有方法有什麼必要定義呢?
另外一種獲取私有屬性或調用私有方法的思路是通過反射:
//MyClass這個類中包含了一個名為myFun的私有方法
classMyClass{
private$tmp='hello';
privatefunctionmyFun()
{
echo$this->tmp.''.'world!';
}
}
//通過類名MyClass進行反射
$ref_class=newReflectionClass('MyClass');
//通過反射類進行實例化
$instance=$ref_class->newInstance();
//通過方法名myFun獲取指定方法
$method=$ref_class->getMethod('myFun');
//設置可訪問性
$method->setAccessible(true);
//執行方法
$method->invoke($instance);
//獲取屬性
$property=$ref_class->getProperty('tmp');
//列印屬性
var_mp($property);
不知道你提這個單純是個問題,還是有別的需求,可以多看看php手冊學習一下。
php 訪問控制
php 反射
Ⅲ php類的兩種訪問方法叫什麼
-> 是面向對象中調用類中的方法(或調用類裡面的變數),格式:類->方法(變數)。
:: 是面向對象中調用類中的靜態方法(或調用靜態變數), 格式:類::靜態方法(靜態變數)
Ⅳ php 如何通過url參數來訪問類,類似於struts2的action調用。
用這種方式,最好的辦法是寫一個統一的入口文件來處理請求參數
// 常量-- 你的網站action路徑
AC_ROOT = '../'
// 處理類
$action = $_REQUEST['action'] ? $_REQUEST['action'] : 'indexAction';
// 處理方法
$method =$_REQUEST['method'] ? $_REQUEST['method']: 'index';
// 查看類是否存在
$actoinfile = AC_ROOT . $action . '.php';
if(file_exists($actoinfile))
{
// 如果存在
require_once($actoinfile);
// 獲取此類的對象
$obj = new $action ();
// 查看處理函數是否存在
if (!method_exists($obj , $method)) {
// 方法不存在返回錯誤
}
// 進入處理流程
$obj->{$method}();
} else {
// 類不存在 返回錯誤
}
建議: 你可以看看 Thinkphp 等框架 的入口處理方法, 對你應該很有幫助.
Ⅳ php怎麼訪問類的方法中的變數!!
方法/函數中的變數是不能直接訪問的,不論是PHP還是其他語言。
相關知識:
變數具有自己的作用域,一般來說只有全局變數可以在任意位置訪問,否則只能在其作用域內訪問。已以下函數為例
functionfoo(){
$param='Hello';
}
變數$param是在函數內聲明的,當你未調用函數foo時,變數$param尚未存在,而foo函數執行結束後$param變數的生命周期結束,也隨之被銷毀,所以對於外部代碼來說,$param總是不可見的。
Ⅵ php 如何調用類
<?php
classtest{//聲明類
publicfunctionss(){//聲明類中的函數
return"Hello,World!";
}
}
$t=newtest();//實例化類對象
echo$t->ss();//調用類對象中的函數
?>
創建類和調用就這么簡單, 快去試試吧
Ⅶ 在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訪問對象
$data = $m_request_data->data; #訪問對象
這一句要注意了。你這里只是臨時定義個變數。要想在類中全部能用它,
class A{
可以在類中先聲明它
private $data;
或者定義一個靜態方法
public static $data;
然後構造方法最後一句變為
public function __construct() {
…………
$this->data= $m_request_data->data; #訪問對象
//靜態方法是self::data = $m_request_data->data;
}
好了這里
function data(){
print_r($this->data);//直接用,列印還是取值$this->data->value();隨你~~
//靜態的是print_r(self::data);
}