Statik işlev içinde bu kullanma başarısız

3 Cevap php

Ölümcül hata: $ this değilken nesne bağlamında kullanarak ben dolar bu kullanmak istiyorum ama olsun tüm bu yöntemi var.

Bunu nasıl işe alabilirim?

public static function userNameAvailibility()
{
     $result = $this->getsomthin();
}

3 Cevap

Bu doğru bir yoldur

public static function userNameAvailibility()
{
     $result = self::getsomthin();
}

Için self:: yerine $this-> Kullanım static methods.

Bkz: PHP Static Methods Tutorial daha fazla bilgi için :)

Erişimci this sınıfı Geçerli örneği ifade eder. Gibi statik yöntemler this çubuklu kullanılarak, örnek kapalı çalışmaz. Yani biri doğrudan burada yöntemini çağırmanız gerekir. Statik yöntem örneği kapsamında şey erişmek, ancak örnek kapsamı dışında sınıf kapsamında şeyi erişemiyor.

Sadece statik işlevleri kendini kullanılarak statik işlev içinde denebilecek :: sınıf kullanmak istediğiniz olmayan statik fonksiyonu varsa, o zaman aynı sınıfın örneğini bildirmek ve onu kullanabilirsiniz.

<?php
class some_class{
function nonStatic() {
    //.....  Some code ....   
    }
 Static function isStatic(){
    $someClassObject = new some_class;
    $someClassObject->nonStatic();
    } 
}
?>