Сумасшедший мир PHP

Posted by Dmytro Shteflyuk on under PHP · English (13,931 views)

Мы живем в XXI веке, а PHPисты до сих пор не могут решить, как писать: "text $b" или 'text ' . $b. Медленно схожу с ума.

via Artjom Kurapov.

52 Responses to this entry

Subscribe to comments with RSS

COTOHA
said on Сентябрь 15, 2007 at 22:47 · Permalink

опа. ифон через ви-фай или они его на какого-то оператора перевели (я ж ниче не пропустил и разлоченых ифонов официально не продают?!)?

said on Сентябрь 16, 2007 at 10:07 · Permalink

2 СОТОНА:
iPhone там работает через Wi-Fi, привязки ни к одному оператору у них нет. Поэтому нельзя потестировать отправку смс и других GSM-функций.
iPhone не то, чтобы разлоченных, а вообще никаких не продают официально…

said on Сентябрь 17, 2007 at 09:59 · Permalink

Вариант

1
"text $b"

хоть и красивее, но работает медленнее, чем

1
'text ' . $b

а ещё быстрей работает

1
echo 'text', $b

так как не надо склеивать строки.
Всё это конечно не имеет значения по большому счёту, но если надо выжимать скорость для мега проекта – то это имеет место

said on Сентябрь 17, 2007 at 10:19 · Permalink

Вот об этом я и говорил. Ведь мегапроект — это большой проект на ПХП, а не драйвера видеокарты? В большом проете ты не выжмешь никакой скорости, если будешь оптимизировать строки. Я уже несколько раз об этом писал!

said on Сентябрь 17, 2007 at 11:36 · Permalink

Думаю дело даже не в производительности, хотя мне один раз пришлось “перефигачивать”. но это долгая история.
Все гораздо проще ).
Дело в том, что подсветка синтаксиса даст нам что:

1
echo "hello $a";

hello $a – строка

1
echo 'hello '.$a;

hello – строка; $a – переменная.

Намнго улучшается читабельность и ускоряется отладка

said on Сентябрь 17, 2007 at 11:44 · Permalink

Неужели нет редакторов хороших для ПХП, которые подсвечивают нормально строки с переменными?

COTOHA
said on Сентябрь 17, 2007 at 12:23 · Permalink

есть конечно (и Zend и Eclipse). но имхо ж дело в не этом, а в том, что раз есть блог, то надо писать. а тут начинаются проблемы :) кстати, критик, на – с пылу с жару:
http://blog.cumps.be/string-concatenation-vs-memory-allocation/

я так вижу это для всех проблема :) на этот счёт посоветую прочитать Якова Фейна

said on Сентябрь 19, 2007 at 09:35 · Permalink

После своего последнего коммента, решил ещё раз зайти и прочитать новые. Написаши много, осилил.

Узнал даже что то новое для себя, за что спасибо. Хотел только для BlackCat’а прокоментировать его примеры. Последний его пример не самый быстрый. Быстрей все же будет:

1
<? $b='text'; ?>text <?=$b; ?>

В отличии от его примера:

1
echo 'text', $b

плайн текст, быстрей всего выводиться, если говорить о выводе, а не просто о работе со строками

RaR
said on Октябрь 5, 2007 at 11:41 · Permalink

Просто не смог устоять. К данному флейму как нельзя лучше относится статья Джоэля

Harvy @
said on Ноябрь 7, 2007 at 14:09 · Permalink

Предлагаю любителям двойных кавычек начать писать по человечески:

1
print "text {$b}"
said on Декабрь 3, 2007 at 02:09 · Permalink

Как по мне – так второй способ удобнее.
Да и все дело в привычке…

said on Декабрь 19, 2007 at 17:20 · Permalink

Оптимизировать, так Оптимизировать!
‘строка ‘ . $variable;

akalend
said on Декабрь 21, 2007 at 23:08 · Permalink

известный факт код: “text $b” будет исполняться медленнее, чем ‘text ‘ . $b;
но первый вариант изящнее.

said on Февраль 4, 2008 at 07:30 · Permalink

Вот и за примерами далеко ходить не нужно – сами пришли. Не встречал на своем веку приложений, где строки подставляются 10000000 раз. А если убрать даже пару нулей (на самом деле убирать придется значительно больше), остаются миллисекунды разницы, что собственно и показывает реальный выигрыш.

Кончайте заниматься ерундой!

said on Февраль 4, 2008 at 10:35 · Permalink

я нуп совсем в блоггинге :) не ожидал что запалюсь так ;)

зы: работать скрипт будет быстрей это факт все равно :) и для этого ненунжно циклы разворачивать или еще каких нить извратов, просто ставить ‘ ‘ :) берегите шифт

said on Февраль 7, 2008 at 01:03 · Permalink

Вот это пост! Столько всего написали, что пока дочитал мысль о комменте материализовалась в этот текст.

А теперь по пунктам:
IPhone – прекрасная вешь если у вас прошивка 1.1.1 – т.к. ломается за 15 минут при наличии только WiFi.

Конкатенция строк: Здесь пожалуй соглашусь с тем что нужно использовать по ситуации, т.к. в моем случае, при разделении кода и шаблонов а уж тем более в CMS системе.

Варианты типа

1
<? $b='text'; ?>text <?=$b; ?>

Отпадают сами собой по причине “калечности” кода и опять таки в случае с CMS если уж и использовать такой метод то придеться добавлять какие нибудь ob_start() методы для его последующего отлавливания. В крупном проекте HTML в коде это просто неприемлемо имхо.

А на сет скорости и кавычек тут все просто – нужно только заглянуть в недра PHP и увидеть, следующее:
При использовании

1
$a = 'text' . $a;

PHP просто соединяет переменные.
А в случае с
При использовании

1
$a = "text $a";

Он сначала ищет их в строке а потом производит операции замены…

Что уже есть +1 действие (поиск).

Ну и на конец как быть тогда с такими вариантами?

1
$a = 'text' . get_new_text($b.'new') . $a . 'finish';

Тут можно еще много тем поднять типа:
1) стоит ли писать скобки у print(‘asdasd’);
2) что быстрее print или echo?
3) в каком из низ конкатенция происходит быстрее?
и прочее =)

Всем удачи, пост понравился =)

CutePro
said on Апрель 12, 2008 at 06:31 · Permalink

The style

1
echo "My name is $myname";

is called string interpolation. it will take more time when comparing to the string concatenation style

1
echo 'My name is '. $myname;

if you do benchmark test of these notations you can find the difference.

the second one is the recommended practice.
Happy Programming !!!!!

DmitriKadykov
said on Май 9, 2008 at 08:59 · Permalink

Если про PHP – конкатенация быстрей интерполяции. Но я использую её по той причине, что не хочу при заморачиваться с интерпояцией, ставить эти фигурные скобки, если передаётся что ни-будь типа $a[i]. Разница в производительности несущественна, это дело вкуса, равно как и выбор стиля кода. Нормальные разработчики о вкусах не спорят.

said on Июль 4, 2008 at 22:36 · Permalink

Сидел полчаса писал комментарий к статье – вдумчиво, серьезно. Забыл написать имя и e-mail – все данные пропали. Шел бы ты лесом, Дмитрий (…дальше нецензурно…) – я еще понимаю, от неопытных пользователей такой сюрприз, но от программиста…

More comments: 1 2

Comments are closed

Comments for this entry are closed for a while. If you have anything to say – use a contact form. Thank you for your patience.