php調用對象
Ⅰ php怎麼請求soap。其中要調用的那個方法的參數是這個方法的對象參數。到底該怎麼調用。
header('Content-Type: text/html; charset=UTF-8');
//鏈接
$http='http://xxxxxx?wsdl';
//參數,很重要,之前搞的時候一直傳不了參數過去,原來是這樣的,搞死我了
$params=array('string'=>'xxx','string1'=>'xxxx');
$client = new SoapClient($http,array('encoding'=>'utf-8','cache_wsdl' => 0,'compression'=>true));
$client->soap_defencoding = 'utf-8';
$client->xml_encoding = 'utf-8';
//請求返回的數據
$return = $client->$fun($params);//parameters
Ⅱ 關於php的對象和引用!!
要理解這個問題,關鍵是要理解php的賦值機制。其實就是四個字:「寫時拷貝」。如下圖,當把a的值賦給b,a和b的關系屬於兩個變數指向同一內容。但是當其中一個變數賦值為不同於當前內容的值時,才會重新分配一塊內存來保存不同的變數,此時兩個變數的指向內容變成兩個,即所謂「寫時拷貝」。
如果理解了「寫時拷貝」的概念,我們繼續。在以下代碼後,繼續增加一次輸出。
classA{
public$foo=1;
}
$a=newA;
$b=$a;//$a,$b都是同一個標識符的拷貝
//($a)=($b)=<id>
$b->foo=2;
echo$a->foo." ";
$b = 3;echo $a->foo;// 此為新增代碼。根據寫時拷貝原理,此時a仍指向對象內容。而b被賦值為3,因此b指向內容為3。
如果到此還沒被搞蒙,繼續進一步。
通過「&」賦值,跟以上賦值是有區別的,屬於一塊內存地址,擁有兩個不同名稱的情況。也就是說,其一改變,另一個會跟著改變。在以下代碼後,繼續增加一次輸出。
$c=newA;
$d=&$c;//$c,$d是引用
//($c,$d)=<id>
$d->foo=2;
echo$c->foo." ";
$b = 3;echo $a->foo;// 此為新增代碼。此時a和b的值都指向3這個值,會報一個不是對象的錯誤,如果直接輸出a或b會發現,兩個變數的值都是3。現象請自行驗證。
Ⅲ php類如何使用外部對象
這個。。。。貌似實現不了
不知道你具體要做什麼
你還是在類中實例那個對象的類好了
<?php
class a
{
function say()
{
echo 'b';
}
}
class b
{
function test()
{
$a = new a();
$a->say();
}
}
$b = new b();
$b->test();
你的pdo對象應該在整個項目都是不變的吧?你想調用已經實例化的對象的話 一般資料庫類是個單例模式。
比如這樣
你的pdo類中加上這個單例模式方法
class database
{
private static $_instance;
public static function getInstance()
{
if(!isset(self::$_instance))
{
self::$_instance = new self();
}
return self::$_instance;
}
}
然後在你的登錄類裡面直接調用這個類的這個方法
如果已經實例化了 就用原來那個對象,沒有的話重新生成這個對象。
Ⅳ php創建一個類,在類中聲明一個數組存放另一個對象,為什麼無法調用數組中對象的方法
//新建一個類User用來存放這,三個數據
//結果放到一個User數組中,你看這可以嗎?
//還是說要放到一個list中?
public class ObjectTest {
public static void main(String[] args) {
String[] id = new String[8];
String[] type = new String[8];
String[] username = new String[8];
User[] users = getUsers(type, id, username);
}
private static User[] getUsers(String[] type, String[] id, String[] username) {
User[] users = new User[type.length];
for (int i = 0; i < type.length; i++) {
users[i] = new User(id[i], type[i], username[i]);
}
return users;
}
}
class User {
public User(String id, String tpye, String username) {
this.tpye = tpye;
this.id = id;
this.username = username;
}
private String tpye;
private String id;
private String username;
public String getTpye() {
return this.tpye;
}
public String getId() {
return this.id;
}
public String getUsername() {
return this.username;
}
public void setTpye(String tpye) {
this.tpye = tpye;
}
public void setId(String id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
}