To dziwne ...
Ale
<?php
echo '11hello ' . (1 + 2) . '34';
?>
LUB
<?php
echo '11hello ', 1 + 2, '34';
?>
ustalające problem.
UPDv1:
Wreszcie udało się uzyskać właściwą odpowiedź:
'hello'
= 0
(zawierający bez początkowych cyfr, więc PHP zakłada, że jest zero).
Więc 'hello' . 1 + 2
upraszcza do 'hello1' + 2
jest 2
, ponieważ bez początkowych cyfr 'hello1'
wynosi zero zbyt.
'11hello '
= 11
(zawiera czołowe cyfr tak, to zakłada, PHP jedenaście).
Tak więc '11hello ' . 1 + 2
upraszcza do '11hello 1' + 2
jako 11 + 2
jest 13
.
UPDv2:
http://www.php.net/manual/en/language.types.string.php
wartość jest dana przez początkowej części łańcucha. Jeśli ciąg znaków zaczyna się od prawidłowych danych liczbowych, będzie to używana wartość. W przeciwnym razie wartość będzie wynosić 0 (zero). Prawidłowe dane liczbowe są opcjonalnymi znakami , po których następuje jedna lub więcej cyfr (opcjonalnie zawierająca dziesiętną kropkę ), po której następuje opcjonalny wykładnik. Wykładnikiem jest "e" lub "E", po których następuje jedna lub więcej cyfr.
Dlaczego żadna odpowiedź nie jest akceptowana? @JetLaggy wydaje się być nowa ... zaakceptuj odpowiedź, aby wątek został zamknięty, a osoba udzielająca odpowiedzi zyska reputację! ;) :) – coderunner