Типизация PHP

AlexVN

Новичок
Типизация PHP

Что Вы скажете на счет использования такого подхода:
PHP:
class SimpleType {
    var $value;
    function getValue() { return $this->value; }
    function toString()  { return new String((string)$this->value); }
    function __toString()  { return (string)$this->value; }
}

class Integer extends SimpleType {
    function Integer($value) { $this->value = (int)$value; }
}

class Double extends SimpleType {
    function Double($value) { $this->value = (double)$value; }
}

class String extends SimpleType {
    function String($value = '') { $this->value = (string)$value; }

    function compareTo(&$string) {
        if (is_object($string) && is_a($string, 'String'))
            return $this->value == $string->getValue();
        else
            return $this->value == $string;
    }
}
И далее (PHP5):
PHP:
function myFunction(Integer $myInteger, String $myString) {
  ...
}
?

На сколько я вижу:
Достоинства:
1. функцию с неправильным параметром не вызовешь.
2. Reflection будет выдавать типы параметров.
Недостатки:
1. Дольше работает
2. Так никто не пишет.
3. Неудобно использовать в выражениях.

Другие соображения?
 

Дед Анвирыч

Новичок
ну вообщем да
хотя в php5 появились исключения - можно проверять аргумент в начале функции и кидать исключение
 

Demiurg

Guest
php изначально был задуман как язык без строгой типизации, и от этого имел свои плюсы и минусы. Мне кажется, что не стот лешать его плюсов не избавляясь от минусов.
 
Сверху