Как работать с типами в функции preg_replace?

Dvizhnyak

Новичок
Как работать с типами в функции preg_replace?

Делаю так
$haystack=preg_replace('/([-+]\d)<br>([-+]\d)/', '($1+$2)>>1', $haystack);

хочу найти ближайшее целое к среднеарефметическому двух чисел и заменить строку на их среднеарефметическое
как вывести результат выражения ($1+$2)>>1, а не сомо выражение.
У меня например выводит (+5++2)>>1 заместо, а хотелось бы чтобы выводил 3
 

alexcrown

Новичок
Попробуй использовать модификатор e. Тогда выражение будет вычислено, а не будет трактоваться как строка. И зачем нужнa конструкция ">>1"?

И еще посмотри последний абзац описания параметра replacement тут. Там кое-какие предупреждения на этот счет.
 

Anarki

Новичок
alexcrown
оператор такой http://www.php.net/manual/ru/language.operators.bitwise.php
в данном случае используется для деления на 2
PHP:
<?php
echo 4>>1;
 

Beavis

Banned
а зачем тут эта двоичная арифметика? чем 4>>1 выглядит лучше чем 4/2 ??
 

Gas

может по одной?
Beavis
моднее, быстрее, не нужно округлять :)
 

AmdY

Пью пиво
Команда форума
а с чего ты взял что "(+5++2)>>1" равно 3 ?
 
Сверху