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.


Burti adlı üyeden alıntı: mesajı görüntüle
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';