Ben bir PHP sınıfta başka yöntemler nasıl durdurabilirim?

3 Cevap php

PHP ile OOP öğreniyorum. Ben bir web sitesi XML veri ayıklamak için bir sınıf oluşturma. Benim sorum ilk yöntem ile bir hata varsa nasıl daha yöntemleri yürütülmesini verilen nesneyi durdurmak yapmak olduğunu. Örneğin, ben URL'yi göndermek istiyorum:

class GEOCACHE {
   public $url;

   public function __construct($url)
   {
      $this->url=$url;
      if (empty($this->url))
      {
         echo "Missing URL";    
      }
   }
   public function secondJob() 
   { 
      whatever
   }
}

Ben böyle yazarken:

    $map = new GEOCACHE ("");
    $map->secondJob("name");

Nasıl secondJob yöntem komut sona erdirici olmadan verilen nesne idam olmaktan engellerim?

3 Cevap

Yapıcı bir özel durum, bu nedenle nesnesi oluşturulur asla

public function __construct($url)
{
   $this->url=$url;
   if (empty($this->url))
   {
      throw new Exception("URL is Empty");    
   }
}

Daha sonra böyle bir şey yapabilirsiniz:

try
{
    $map = new GEOCACHE ("");
    $map->secondJob("name");
}
catch ( Exception $e)
{
    die($e->getMessage());
}

Script akışını kontrol etmek için exceptions kullanmayı düşünün. Yapıcısı bir istisna ve dışarıda yakalamak.

__ Yapı bir istisna

public function __construct($url)
{
  if(null == $url || $url == '')
  {
     throw new Exception('Your Message');
  {
}

sonra kodunuzda

try
{
  $geocache = new Geocache($url);
  $geocache->secondJob();
  // other stuff
}
catch (exception $e)
{
  // logic to perform if the geocode object fails
}