Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Переход по ссылке с переменной. (https://javascript.ru/forum/misc/71395-perekhod-po-ssylke-s-peremennojj.html)

Lion777 16.11.2017 00:06

Цитата:

Сообщение от Nexus (Сообщение 470264)
Lion777,

Вы использовали конкатекацию строк в связке с print и считаете, что это более "правильно", чем заюзать echo?

И чем теперь конкатенация вам не угодила ? )))

Nexus 16.11.2017 00:09

Lion777,
Цитата:

Сообщение от Lion777
И чем теперь конкатенация вам не угодила ?

Зачем использовать 3 операции там, где можно использовать одну?

Nexus 16.11.2017 00:13

Цитата:

Сообщение от Lion777
Ну, так объясните в чем глобальная разница и где мне лучше использовать то или другое ?

В этом примере вы не сможете заменить "print" на "echo" не изменяя условия:
if(true and false or print('some text'))
	echo PHP_EOL,
		'true';


PS. Разница между конструкциями есть, однако если использовать конструкции исключительно для вывода информации, то тут можно использовать любую из них, разница будет незаметна.

Lion777 16.11.2017 00:18

Цитата:

Сообщение от Nexus (Сообщение 470268)
Lion777,

Зачем использовать 3 операции там, где можно использовать одну?

вы думаете внутренне в echo делается одна операция? Там не происходит, например, конкантенация или циклом выводятся данные? А телодвижений ровно столько же, что и при echo, только там запятые, а тут точки, а ну да, print на один символ больше чем echo ))

Nexus 16.11.2017 00:28

Цитата:

Сообщение от Lion777
вы думаете внутренне в echo делается одна операция

Кто знает.
Может вы заморочитесь и найдете в исходниках реализацию этой конструкции, чтобы доказать мою неправоту)

И, кстати, да, я думаю, что конкатекация в "echo" не имеет место быть :)

Lion777 16.11.2017 00:34

Цитата:

Сообщение от Nexus (Сообщение 470269)
В этом примере вы не сможете заменить "print" на "echo" не изменяя условия:
if(true and false or print('some text'))
	echo PHP_EOL,
		'true';


Ну в этом примере конечно не смогу ))), но смысла в нем не вижу, ведь print всегда возвращает 1
---
Цитата:

Сообщение от Nexus (Сообщение 470272)

И, кстати, да, я думаю, что конкатекация в "echo" не имеет место быть :)

И почему же ? ))) чем она хуже запятых, есть аргументы ? Мы вот счас спорим непонятно о чем, с одной лишь разницей, что я не доказываю что лучше, а говорю о том "что не хуже" (одна не хуже другой)

laimas 16.11.2017 00:36

Цитата:

Сообщение от Lion777
А телодвижений ровно столько же, что и при echo, только там запятые, а тут точки

Это не точки и запятые - echo в отличии от print может принимать несколько аргументов. Что касается просто "пофиг, выводит да и ладно", конечно можно и так колбасить:

<div><?php print 'text'?></div>


но все таки проще так:

<div><?='text'?></div>


и это будет выведено именно с использованием echo, print тут никак не прокатит так как результатом будет не

<div>text</div>

а

<div>text1</div>

ибо print являясь конструкцией ведет себя как функция, которая всегда возвращает 1. Вот так не получится:

expression ? echo 1 : echo 0

а так прокатит:

expression ? print 1 : print 0

с echo только с выносом конструкции за пределы выражения

echo expression ? 1 : 0

Открывайте матчасть, читайте.

Lion777 16.11.2017 01:24

Ахах, начнем с конца )))
конечно так не напишешь
expression ? echo 1 : echo 0
ведь echo ничего не возвращает и в чем тут преимущество ?
echo expression ? 1 : 0;
от
print expression ? 1 : 0; или expression ? print 1 : print 0; ?

Данная конструкция<?='text'?>
это всего лишь альтернативный способ записи echo и конечно если в ней написать <div><?= print 'text'?></div> то выведет text1, ведь это тоже, что написать echo print text;,
ну а если уж так написать <?php print 'text'?> то вся программа пойдет на перекосяк )))... И что вы хотели доказать ? Поумничать ? Преимущество в чем ? Что тот, что тот могу использовать во всех конструкциях, так что лучше то ???

laimas 16.11.2017 01:55

Lion777,
учите матчасть, ибо вы не понимаете о чем говорите. Может после прочтения поймете, чем выгоднее запятая от точки.

Без обид, но вы несете такую пургу, что вести диалог далее нет никакого смысла.

Lion777 16.11.2017 02:10

Да какие тут обиды ))), дайте ссылку почитать о точках с запятыми, а то походу весь инет пургу несет )))


Часовой пояс GMT +3, время: 23:09.