Sınıf değişkenleri, kapsam çözünürlük operatörü ve PHP farklı sürümleri

1 Cevap php

Ben codepad.org aşağıdaki kodu çalıştı:

class test { 
  const TEST = 'testing 123';
  function test () {
    $testing = 'TEST';
    echo self::$testing;
  }
} 
$class = new test;

Ve ile döndü:

1
2 Fatal error: Access to undeclared static property:  test::$testing on line 6

I want to know whether referencing a class constant with a variable would work on my server at home which runs php 5.2.9 whereas codepad uses 5.2.5 . What are changes in class variables with each version of PHP?

1 Cevap

The Scope Resolution Operator (also called Paamayim Nekudotayim) or in simpler terms, the double colon, is a token that allows access to static, constant, and overridden members or methods of a class.

Eğer fonksiyon testi ($ test) olarak tanımlayan değişken statik veya sabit, bu nedenle kapsam çözünürlük operatörü geçerli değildir değil.

class test { 
  const TEST = 'testing 123';
  function test () {
    $testing = 'TEST';
    echo $testing;
  }
} 

$class = new test;

Ya da sadece sınıf dışında sabit erişebilirsiniz:

test::TEST;

Doğru kullanıldığında eğer evde sunucu üzerinde çalışması gerekir. PHP4'te gelen PHP5'ta için OOP değişiklikler ile ilgili olarak, php documentation yararlı olabilir. Sadece kafamın üst kapalı olsa da, onlar sınıf değişkenleri ile ilgili olarak php5 ana değişiklikleri kendi görünürlük, statik ait ve sabitler olacağını söyleyebilirim. Tüm bunlar sağlanan belgeler linke kaplıdır.