Задача по PHP №2

Всі ми вміємо додавати і віднімати, хтось краще хтось гірше. Сьогоднішня задача така: "Який буде результат виконання цього коду: echo 1 + print(1) + 1;". Якби тут було все так просто я б вас не запитував. Дальше відповідь і пояснення.

Насправі не все так просто як насправді. Отже було б логічно якби результат коду був 3 але .... результат коду у нас буде скільки? Правильно 22 =)

22 - неочікувана відповідь?

Давайте постараємось розібратись чому так. В першу чергу треба зрозуміти що print це не "справжня" функція, це мовна конструкція. Я написав "справжня" в лапках тому що print повертає true завжди і без винятку. Необхідно собі це запамятати. Звісно ви не маняк що б писати такий код який я привів у прикладі але все ж таки, знання не бувають зайвими.

Постараємось розібратись в цьому прикладі. Наведу менш запутаний код:

  
echo 1 + print(2) + 3; // результат 52

Чесно кажучи в голові не вкладається але хочеться дізнатись чому так і знайти в цьому хоча б якусь логіку. Отже получається у нас спочатку виконюється прінт виводиться 2 дальше 2+3=5

Пізніше print повертає 1 і 1+1=2 Скоріше всього так і відубвається. Хз чи так точно але мабуть так.

   
 echo print(2) +  print(6);// результат 631

Мені здається що вищесказана теорія має сенс. Спочатку 6 потім 6+2 так як 2 виведе print пізніше print повертає 1 і echo його і показує. Надіюсь деякі підводні камінчики ми побачили. Ось посилання на офіційний сайт php про print http://php.net/manual/en/function.print.php