максимальная ширина и максимальная высота для масштабирования изображений в Internet Explorer

isset()

Это языковая конструкция, которая проверяет инициализацию переменных или свойств класса:

$a = 10;

isset($a);     // true
isset($a, $b); // false

class Test
{
    public $prop = 10;
}

$obj = new Test;
isset($obj->prop); // true

__isset()

Это волшебный метод, который вызывается, когда isset() или empty() проверяют несуществующее или недоступное свойство класса:

class Test
{
    public function __isset($name) {
        echo "Non-existent property '$name'";
    }
}

$obj = new Test;
isset($obj->prop); // prints "Non-existent property 'prop'" and return false

Отличие:

           isset()                               __isset()
Language construct                    | Magic method
                                      |
Always return bool                    | Result depends on custom logic*
                                      |
Must be invoked in code               | Called automatically by event
                                      |
Unlimited number of parameters        | Has only one parameter
                                      |
Can be used in any scope              | Must be defined as method**
                                      |
Is a reserved keyword                 | Not a reserved keyword
                                      |
Can't be redefined (Parse error)      | Can be redefined in extended class***

__isset() результат в любом случае будет автоматически лить как bool.

На самом деле вы можете определить пользовательская функция __isset(), но она не имеет ничего общего с магическим методом.

См. в этом примере .


Магические методы

В отличие от общих функций, они могут быть определены только в области видимости класса и автоматически активируются при определенных событиях, таких как: недоступный вызов метода, сериализация класса, когда unset() используется для недоступных свойств и т. д. См. Также эту официальную документацию: Перегрузка .

15
задан johneth 4 September 2010 в 14:49
поделиться