PHP nesne sınıfı değişkeni

3 Cevap php

PHP bir sınıf kurduk ve ben bir nesne olarak bir sınıf değişkeni bildirmek zorundadır. Everytime ben kullanmak boş bir nesne bildirmek istiyorum:

$var=new stdClass;

Ama ben gibi bir sınıf değişkeni bildirmek için kullanmak eğer

class foo
{
    var $bar=new stdClass;
}

bir ayrıştırma hatası oluşur. Bunu yapmak için bir yolu var mı yoksa ben yapıcı işlevine bir nesne olarak sınıf değişken bildirmeniz gerekir?

PS: Ben PHP 4 kullanıyorum.

3 Cevap

Sadece böylece, sınıf üyeleri için statik değerleri bu şekilde beyan yani ints, strings, bools, arrays edebilirsiniz. Siz işlevleri çağıran veya nesneleri oluşturmak gibi, her türlü işlenmesini içerir şey yapamaz.

Yapıcı bunu yapmak zorunda olacak.

Relevant manual section:

PHP 4, var değişkenler için sadece sabit initializers izin verilir. Olmayan sabit değerleri ile değişkenlerini başlatmak için, bir nesne sınıfından inşa edilirken otomatik olarak adlandırılan bir başlatma fonksiyonu gerekir. Bu tür bir işlev (aşağıya bakınız), bir yapıcı olarak adlandırılır.

Classes and Objects (PHP 4). İyi bir okuma her şey!

Sen burada nesnesi oluşturmak gerekir.

Sen iyi pasör ve getter yazmak gerekir

<?php
    class foo
    {
       var $bar = null;

       function foo($object = null)
       {
          $this->setBar($object);
       }

       function setBar($object = null)
       { 
          if (null === $object)
          {
             $this->bar = new stdClass();
             return $this;
          }

          $this->bar = $object;
          return $this;
       }
    }

Bu arada, daha esnek OOP, çalışmak için PHP5 kullanmanız gerekir ...