Güzel bir sorunla karşılaşmışsın sebebi çok basit..
Construct method u daha class ı tanımladığında çalışır yani sen
$asd = new SoapClassim(); dediğin anda o method çalışır böylelikle sen değişkenleri sonradan tanımlamış olursun. Bu tarz durumlarda çözüm nedir peki şimdi ona bakalım.
Önce construct methodunu düzenleyelim.
public function __construct($prefix,$ip,$port,$username,$password)
{
$url=$prefix.'://'.$ip;
if(!empty($port)){
$url=$url.':'.$port;
}
echo $this->ip;
$this->SOAP = $client = new SoapClient("$url/sdk/soap.wsdl", array("location"=>"$url/sdk/"));Username ve password da construct a olduğu için fonksiyona variable olarak gönderdim. Dilersen daha sonra ben bu değişkenleri kullanmam lazım diyorsan construct ın içinde tanımlayabilirsin.
public function construct($ip,$port,$username,$password)
{
$this->ip = $ip;
$this->port = $port;
$this->username = $username;
$this->password=$password;
}Kullanmıyorsan gerek yok..
Şimdi gelelim class ımızı tanımladığımızda yapmamız gerekene
$esxi=new SOAPClassim('https','google.com','80','mesut','eyrice');
$esxi->mainProccess();Instanse tanımlarken değişkenleri gönderiyoruz.
tamamdır hocam teşekkürler. şu an tek problemim değişkenleri iletemiyorum:
class SOAPClassim
{
public $SOAP;
public $prefix = '';
public $ip = '';
public $port = '';
public $username = '';
public $password = '';
public function __construct()
{
$url=$prefix.'://'.$this->ip;
if(!empty($this->port)){
$url=$url.':'.$this->port;
}
echo $this->ip;
$this->SOAP = $client = new SoapClient("$url/sdk/soap.wsdl", array("location"=>"$url/sdk/"));
try{
................
$esxi=new SOAPClassim;
$esxi->prefix='https';
$esxi->ip='google.com';
$esxi->username='user';
$esxi->password='sifre';