вот результаты: str_replace - 17.406872034073 preg_replace - запустил, пошел перекурить, скрипт дальше выполняется...
Разница: ∞
P.S: Дал фору preg_replace-у, ограничил строку до 300 символов, результат 13.624022006989. Всё еще есть желание использовать для удаления чисел из строки preg_replace() ?
LIME, с моих старых вопросов, которые ты помнишь, много времени прошло и я, как и все, много чему научился. Если я что-то пишу, значит я это не с воздуха взял, а с достоверных источников. К тому-же сам тестировал и действительно разница есть и почему бы не последовать этому микро-производительному решению дабы еще на 1 микросекунду ускорить программу. Я хотел помочь, но вижу что ты начинаешь переходить на личное, а я не хочу принимать в этом участие.
ни один символ при сравненни с числом никогда не приведется к false. Преобразование будет в int, в данном случае в 0 (символы '1'-'9' будут преобразованы в свои целочисленные соответствия).
LIME пишет:
кем?
Мною Использование регулярных выражений для такой банальной задачи... не смешите! Функция str_replace() на 61.56% более производительная чем preg_replace() (даже без учета регулярок). Ещё лучше использовать strtr() (она на 9.76% быстрее чем str_replace()), но в данном случае она к сожелению не подойдёт.
$a->test('some text');// тут должен вызваться метод test() класса B: 'B some text'
Сами-то понимаете, чего хотите ?
Откуда классу A знать, что нужен метод именно этого дочернего класса, а не "С", или "D" ?
Создайте экземпляр объекта класса B и вызывайте.
В том то и дело что понимаю, но думал что народные умельцы что-то придумали
У класса A может быть несколько наследников, поэтому никак.
MADONZY пишет:
Может есть какой-то шаблон проэктирования для таких случаев?
Ну так опишите свой случай.
2 варианта:
1) Есть класс A который наследуется от класа Х. В нем есть метод test (возможно статический). Где-то далеко-далеко в коде этот метод вызывается. Класс A это член стандартных классов какого-то фреймвока, котовый я не хочу изменять. Я же хочу создать свой дополнительный класс B который наследует класс А и в нем я надпишу (возможно статический) метод test. И я хочу что-бы в том далеком-далеком месте где вызывается метод test класса А, не изменяя этот вызов, вызывался метод test класса B.
2) Есть класс A который наследуется от класа Х. В нем есть метод test (возможно статический). Где-то далеко-далеко в коде этот метод вызывается. Класс A это член стандартных классов какого-то фреймвока, котовый я не хочу изменять. Я же хочу создать свой дополнительный класс B который наследует класс X и в нем я надпишу (возможно статический) метод test. И я хочу что-бы в том далеком-далеком месте где вызывается метод test класса А, не изменяя этот вызов, вызывался метод test класса B.
Здравствуйте, по лабораторной с программирования мне достался алгоритм кроссвордов...
На вход поступает массив [ ['question' => 'string1', 'answer' => 'string2'], ['question' => 'string2', 'answer' => 'string2'], ['question' => 'string3', 'answer' => 'string3'], ... ]
Нужно как-то сыскать между словами соответсвующие пересечения (и выбрать найболее подходящие) что-бы на выходе был соответствующий массив, но к ['question' => 'string1', 'answer' => 'string1'] ещё добавятся ['position' => 'int1', 'startX' => 'int1', 'startY' => 'int1']...
Как бы написать такой алгоритм?