Подвійні лапки в php. У чому різниця між рядками з одинарними та подвійними лапками у PHP? Php екранування лапок

У цій короткій статті показано, як і де варто використовувати лапки в PHP.

Одинарні лапки (апострофи) в PHP

Рядки, укладені на одинарні лапки, не обробляються PHP. Тобто одинарні лапки репрезентують текст, укладений між ними, як є.

// Правильно echo "Як життя?"; echo "Як життя? $name"; echo "Як життя? ".$name; // Неправильно echo "Як життя? $ name";

Спеціальні символи в одинарних та подвійних лапках

Щоб, наприклад, символ табуляції (\t) інтерпретувався як символ табуляції, а не як сліш та буква t, необхідно укладати рядок з текстом, в якому міститься символ табуляції, у подвійні лапки. В одинарних лапках можна використовувати тільки \' і \\. Всі інші послідовності, що екранують (\n , \r , \$ і т.д.) неприпустимо використовувати в одинарних лапках.

// Неправильно echo "Як життя? \n"; // Правильно echo "Як життя? \n";

Щоб екранувати подвійні лапки всередині рядка, поставте лапки перед зворотним слешем.

// Неправильно echo "

Як життя?

// Правильно echo

Як життя?

"; echo"

Як життя?

";

Подвійні лапки в PHP

Текст, укладений у подвійні лапки, обробляється зовсім інакше. Наприклад, змінні, укладені в подвійні лапки, замінюються на значення. Це робить зручним складати SQL запитиза допомогою подвійних лапок.

$query = "Інсталюваний вхідний текст (post, author, text, data) VALUES ("$id", "$author", "$text", "$date")";

Який вид лапок використовувати для оформлення рядків – апострофи чи класичні подвійні лапки?

Давайте розберемо різницю між подвійними та одинарними лапками у PHP, і на прикладах з'ясуємо, коли які потрібно використовувати.

Змінні та екрануючі послідовності для спеціальних символів, що зустрічаються у рядках, укладених у одинарні лапки - не обробляються. Рядки, обрамлені апострофами, обробляються інтерпретатором PHP набагато швидше, ніж аналогічні рядки, оточені подвійними лапками.

Причина тут проста: рядки в подвійних лапках інтерпретатор PHP додатково перевіряє наявність змінних і якщо такі перебувають, то замість імені змінної в рядок вставляється її значення. А ось рядок, укладений у апострофи, сприймається інтерпретатором як звичайний текст і жодних перетворень у цих рядках PHP не проводить. Думаю, зрозуміло, що обробка рядків в одинарних лапках у будь-якому випадку відбуватиметься швидше.

Для початку опишемо способи визначення рядка, а потім перевіримо, наскільки швидше відбуватиметься обробка рядків в одиночних лапках.

Найпростіший спосіб визначити рядок - це укласти його в одинарні лапки ("). Для того, щоб використовувати одинарні лапки всередині рядка, укладеного в одинарні лапки, їх необхідно випередити символом зворотної косої межі (\), тобто екранувати. Якщо зворотна коса характеристика повинна йти перед одинарною лапкою або бути в кінці рядка, вам необхідно продублювати її.Якщо спробуєте екранувати будь-який інший символ, обернена коса риса також буде надрукована.

Наведемо приклад використання одинарних лапок:
// Виведе: Простий рядок
echo "Простий рядок";
// Виведе: I"m here
echo "I"m here";
// Виведе: Це не вставить: новий рядок
echo "Це не вставить: новий рядок";
// Виведе: Змінна $example теж не підставиться
echo "Змінна $example теж не підставиться"; Якщо рядок укладено в подвійні лапки ("), PHP розпізнає більшу кількість керуючих послідовностей для спеціальних символів і підставляє замість імені змінної в рядок її значення. Так само, як і з одинарними лапками, для того, щоб використовувати подвійні лапки всередині рядка, укладеного у подвійні лапки, їх необхідно випередити символом зворотної косої межі (\).

Наведемо приклад використання подвійних лапок:
// Виведе: Простий рядок
echo "Простий рядок";
// Виведе: Фірма "Пролісок"
echo "Фірма "Пролісок"";
// Виведе: Це переведе на новий рядок
echo "Це переведе на новий рядок \n";
// Виведе: Змінна підставиться
$example = "підставиться";
echo "Змінна $example"; Слід також пам'ятати, що послідовність "n" (новий рядок), "r" (повернення каретки) для звичайного тексту, а не для HTML. Так що у браузері Ви не побачите змін (тільки у вихідний кодсторінки).

Давайте з'ясуємо, як швидше одинарні лапки подвійних. Для вимірів напишемо короткий тестовий скрипт, і відразу зауважимо, що якщо Ви будете його тестувати, результати, які залежать від апаратної частини вашого ПК або сервера, будуть інші.
// Повертаємо мітку часу на початку циклу
$start = microtime(true);
// Створюємо цикл цикл на 1 млн ітерацій
for ($i = 0; $i< 1000000; $i++) {
$text = "Тут символьний рядок";
}
// Обчислюємо витрачений час
$time = (microtime(true) - $start); Результат: 0.09 секунди.

Якщо ми замінимо одинарні лапки на подвійні:
$text = "Тут символьний рядок"; Результат дорівнюватиме 0.10 секунди.

Як бачимо, при використанні текстових рядків різниця в часі виконання зовсім невелика, навіть можна сказати і не існує. Найцікавіше почнеться, коли спробуємо поєднати рядок та змінний.
$text = "Тут символьний рядок $i"; або
$text = $i."Тут символьний рядок"; Результат приблизно: 0.27 секунд.

Різниця дуже відчутна. Конкатенація та подвійні лапки явно впливають на швидкодію, якщо до рядка додано змінні.

Коли сервер обробляє код, він перевіряє весь вміст подвійних лапок на наявність змінних, констант та інше. Це триває час. А те, що знаходиться між одинарними лапками, сервер обробляє як готовий текст і йому все одно, що там знаходиться. Різниця між швидкодією одинарних і подвійних лапок дуже незначна, але якщо Ви займатиметеся розробкою високо навантаженого проекту, то кілька зекономлених мілісекунд – це вже перемога.

Рядок у PHP - це набір символів будь-якої довжини. На відміну від Сі, рядки можуть містити також і нульові символи, що ніяк не вплине на програму. Іншими словами, рядки можна використовувати для зберігання бінарних даних. Довжина рядка обмежена лише розміром свободи оперативної пам'яті.

У PHP символ це те саме, що і байт, це означає, що можливо рівно 256 різних символів. Це також означає, що PHP не має вбудованої підтримки Unicode. Деяка підтримка Unicode забезпечує функції utf8_encode()і utf8_decode() .

Рядок легко може бути оброблена за допомогою стандартних функцій, можна безпосередньо звернутися до будь-якого її символу.

Простий приклад рядкової змінної:

$a = "Це просто текст, записаний у рядкову змінну";
echo $a; //Виводить "Це просто текст, записаний у рядкову змінну"
?>

А тепер докладно розберемо синтаксис типу даних string.

Синтаксис типу string (рядок)

Рядок може бути визначений трьома різними способами.

Найпростіший спосіб визначити рядок - це укласти його в одинарні лапки (символ " ).

Щоб використовувати одинарну лапку всередині рядка, як і в багатьох інших мовах, її необхідно попередити символом зворотної косої межі ( \ ), тобто екранувати її. Якщо зворотна коса риса повинна йти перед одинарною лапкою або бути в кінці рядка, вам необхідно продублювати її. Зверніть увагу, що якщо ви спробуєте екранувати будь-який інший символ, обернена коса риса також буде надрукована! Так що, як правило, немає необхідності екранувати саму зворотну косу межу.

На відміну від двох інших синтаксисів, змінні та екрануючі послідовності для спеціальних символів, що зустрічаються в рядках, укладених у, необробляються.

Наведемо приклад використання одинарних лапок:

echo "це простий рядок";

Echo "Також ви можете вставляти в рядки
символ нового рядка таким чином,
оскільки це нормально"
;

// Виведе: Якось Арнольд сказав: "I"ll be back"
echo "Одного разу Арнольд сказав: "I'll be back"";

Echo "Ви видалили C:\\*.*?";

// Виведе: Ви видалили C:\*.*?
echo "Ви видалили C:\*.*?" ;

// Виведе: Це не вставить: новий рядок
echo "Це не вставить: новий рядок";

// Виведе: Змінні $expand також $either не підставляються
echo "Змінні $expand також $either не підставляються";
?>

Якщо рядок укладено у подвійні лапки ( " ), PHP розпізнає більше керуючих послідовностей для спеціальних символів:

Таблиця керуючих послідовностей:

Послідовність Значення
\n новий рядок (LF або 0x0A (10) в ASCII)
\r повернення каретки (CR або 0x0D (13) до ASCII)
\t горизонтальна табуляція (HT або 0x09 (9) ASCII)
\\ зворотна коса риса
\$ знак долара
\" подвійна лапка
\{1,3} послідовність символів, що відповідає регулярному виразу, символ у вісімковій системі числення
\ x (1,2) послідовність символів, що відповідає регулярному виразу, символ у шістнадцятковій системі числення

Ще раз нагадаємо, що якщо ви захочете менімнонізувати будь-який інший символ, обернена коса риса також буде надрукована!

Інший спосіб визначення рядків – це використання heredoc-синтаксису ("<<< "). Після<<< необходимо указать идентификатор, затем идет строка, а потом этот же идентификатор, закрывающий вставку.

Ідентифікатор, що закриває, повинен починатися в першому стовпці рядка. Крім того, ідентифікатор повинен відповідати тим же правилам іменування, що й інші мітки в PHP: містити тільки буквено-цифрові символи та знак підкреслення, і повинен починатися з нецифри або символу підкреслення.

Увага! Дуже важливо відзначити, що рядок з ідентифікатором, що закриває, не містить інших символів, за винятком, можливо, точки з комою ( ; ). Це означає, що ідентифікатор і що не може бути жодних пробілів або знаків табуляції до або після крапки з комою. Важливо також розуміти, що першим символом перед ідентифікатором, що закриває, повинен бути символ нового рядка, визначений у вашій операційній системі. Наприклад, на Windows® це \r.

Якщо це правило порушено і закриває ідентифікатор не є "чистим", вважається, що ідентифікатор, що закриває, відсутній і PHP продовжить його пошук далі. Якщо в цьому випадку правильний ідентифікатор, що закриває, так і не буде знайдений, то це викличе помилку в обробці з номером рядка в кінці скрипта.

Heredoc-текст поводиться так само, як і рядок у подвійних лапках, при цьому їх не маючи. Це означає, що вам немає необхідності екранувати лапки в heredoc, але ви, як і раніше, можете використовувати вищезгадані керуючі послідовності. Змінні обробляються, але із застосуванням складних змінних усередині неїдоцільно бути також уважним, як і при роботі з рядками.

Приклад визначення heredoc-рядка:

$str =<<Приклад рядка,
що охоплює кілька рядків,
з використанням heredoc-синтаксису.
EOD;

/* Більш складний приклад із змінними. */
class foo
{
var $foo;
var $bar;

Function foo ()
{
$this -> foo = "Foo";
$this -> bar = array("Bar1", "Bar2", "Bar3");
}
}

$ foo = new foo ();
$name = "Моє Ім'я" ;

Echo<<Мене звуть $name. Я друкую $foo-> foo.
Тепер я виводжу
($ foo -> bar [1]) .
Це має вивести велику букву "A":
41
EOT;
?>

Я не експерт у програмуванні на PHP, але мене трохи бентежить, чому я бачу деякий код у PHP з рядком, укладеним в одинарні, а іноді й у подвійні лапки.

Я просто знаю, що в.NET або мовою Сі, якщо він в одинарних лапках, це означає, що це символ, а не рядок.

Рішення

Те, що ви повинні знати,

$a = "name"; $b = "my $a"; == "my name" $c = "my $a"; != "my name"

У PHP люди використовують одинарні лапки для визначення постійного рядка, наприклад "a", "my name", "abc xyz" при використанні подвійного лапки для визначення рядка, що містить ідентифікатор, такий як "a $b $c $d"

І інша річ,

Echo "my name";

швидше за

Echo "my name";

Echo "my". $a;

повільніше, ніж

Echo "my $a";

Це вірно для інших рядків, що використовуються.

У PHP текст у одинарних лапках розглядається як рядкове значення, а текст у подвійних лапках аналізуватиме змінні шляхом заміни та обробки їх значення.

$ test = "variable"; echo "Hello Mr $test"; // output would be: Hello Mr variable echo "Hello Mr $test"; // output would be: Hello Mr $test

Тут подвійна лапка аналізує значення, а одинарна лапка розглядається як рядкове значення (без розбору змінної $test.)

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

Рядок - це набір символів. У PHP символ це те саме, що і байт, це означає, що можливо рівно 256 різних символів. Це також означає, що PHP не має вбудованої підтримки Unicode"а. Деяку підтримку Unicode"а забезпечують функції utf8_encode() та utf8_decode() .

Примітка: Немає проблем, якщо рядок дуже великий. Практично не існує обмежень на розмір рядків, що накладаються PHP, так що немає жодних причин турбуватися про їх довжину.

Синтаксис

    Рядок може бути визначений трьома різними способами.

Одинарні лапки

Найпростіший спосіб визначити рядок - це укласти її в одинарні лапки (символ ").

Щоб використовувати одинарну лапку всередині рядка, як і в багатьох інших мовах, її необхідно попередити символом зворотної косої риси (\), тобто екранувати її. Якщо зворотна коса риса повинна йти перед одинарною лапкою або бути в кінці рядка, вам необхідно продублювати її. Зверніть увагу, що якщо ви спробуєте екранувати будь-який інший символ, обернена коса риса також буде надрукована! Так що, як правило, немає необхідності екранувати саму зворотну косу межу.

Примітка: У PHP 3 буде видано повідомлення рівня E_NOTICE.

Примітка: На відміну від двох інших синтаксисів, змінні та екрануючі послідовності для спеціальних символів, що зустрічаються в рядках, укладених у одинарні лапки, не обробляються.

Echo "це простий рядок"; echo "Також ви можете вставляти в рядки символ нового рядка таким чином, оскільки це нормально"; // Виведе: Якось Арнольд сказав: "I"ll be back" echo "Одного разу Арнольд сказав: "I"ll be back""; // Виведе: Ви видалили C:\*.*? echo "Ви видалили C:\*.*?"; // Виведе: Ви видалили C:\*.*? echo "Ви видалили C:\*.*?"; // Виведе: Це не вставить: новий рядок echo "Це не вставить: новий рядок"; // Виведе: Змінні $expand і $either не підставляються echo "Змінні $expand і $either не підставляються";

Подвійні лапки

Якщо рядок укладено в подвійні лапки ("), PHP розпізнає більше керуючих послідовностей для спеціальних символів:

Таблиця 11-1. Керуючі послідовності

Повторюємо, якщо ви захочете менімнонізувати будь-який інший символ, обернена коса риса також буде надрукована!

Але найважливішою властивістю рядків у подвійних лапках є обробка змінних. Дивіться докладніше: обробка рядків.

Heredoc

Інший спосіб визначення рядків - це використання heredoc-синтаксису ("

Ідентифікатор, що закриває, повинен починатися в першому стовпці рядка. Крім того, ідентифікатор повинен відповідати тим же правилам іменування, що й інші мітки в PHP: містити тільки буквено-цифрові символи та знак підкреслення, і повинен починатися з нецифри або символу підкреслення.

Увага

Дуже важливо відзначити, що рядок з ідентифікатором, що закриває, не містить інших символів, за винятком, можливо, точки з комою (;). Це означає, що ідентифікатор не повинен вводитись з відступом і що не може бути жодних пробілів або знаків табуляції до або після крапки з комою. Важливо також розуміти, що першим символом перед ідентифікатором, що закриває, повинен бути символ нового рядка, визначений у вашій операційній системі. Наприклад, на Macintosh це \r.

Якщо це правило порушено і закриває ідентифікатор не є "чистим", вважається, що ідентифікатор, що закриває, відсутній і PHP продовжить його пошук далі. Якщо в цьому випадку правильний ідентифікатор, що закриває, так і не буде знайдений, то це викличе помилку в обробці з номером рядка в кінці скрипта.

Heredoc-текст поводиться так само, як і рядок у подвійних лапках, при цьому їх не маючи. Це означає, що вам немає необхідності екранувати лапки в heredoc, але ви, як і раніше, можете використовувати вищезгадані керуючі послідовності. Змінні обробляються, але із застосуванням складних змінних усередині неїдоцільно бути також уважним, як і при роботі з рядками.

Приклад 11-2. Приклад визначення heredoc-рядка

$str =<<foo = "Foo"; $this->bar = array("Bar1", "Bar2", "Bar3"); ) ) $ foo = new foo (); $name = "Моє Ім'я"; echo<<foo. Тепер я виводжу ($ foo-> bar). Це повинно вивести велику літеру "A": \x41 EOT;

Примітка: Підтримка heredoc була додана до PHP 4.

Обробка змінних

Якщо рядок визначається в подвійних лапках, або за допомогою йогодокумента, змінні всередині неї обробляються.

Існує два типи синтаксису: простий та складний. Простий синтаксис більш легкий та зручний. Він дає можливість обробки змінної, значення масиву (array) чи властивості об'єкта (object).

Складний синтаксис був введений у PHP 4 і може бути розпізнаний по фігурних дужках, що оточують вираз.

Простий синтаксис

Якщо інтерпретатор зустрічає знак долара ($), він захоплює багато символів, скільки можливо, щоб сформувати правильне ім'я змінної. Якщо потрібно точно визначити кінець імені, укладайте ім'я змінної у фігурні дужки.

$beer = "Heineken"; echo "$beer"s taste is great"; // працює, """ це невірний символ для імені змінної echo "He drank some $beers"; // не працює, "s" - це вірний символ для імені змінної echo "He drank some $(beer)s"; // працює echo "He drank some ($ beer) s"; // працює

Так само можуть бути оброблені елемент масиву (array) або властивість об'єкта (object). В індексах масиву квадратна дужка (]), що закриває, позначає кінець визначення індексу. Для властивостей об'єкта застосовуються самі правила, як і простих змінних, хоча з ними неможливий трюк, як із змінними.

// Ці приклади специфічно використання масивів всередині // рядків. Поза рядками завжди укладайте рядкові ключі вашого // масиву в лапки і не використовуйте поза рядками (дужки). // Давайте покажемо всі помилки error_reporting(E_ALL); $fruits = array("strawberry" => "red", "banana" => "yellow"); // Працює, але зауважте, що поза лапками рядка це працює інакше echo "A banana is $fruits."; //Працює echo "A banana is ($fruits["banana"])."; // Працює, але PHP, як описано нижче, спочатку шукає // константу banana. echo "A banana is ($fruits)."; // Не працює, використовуйте фігурні дужки. Це спричинить помилку обробки. echo "A banana is $fruits["banana"]."; // Працює echo "A banana is". $fruits["banana"] . "."; // Працює echo "This square is $square->width meters broad."; // Не працює. Для вирішення див. Складний синтаксис. echo "This square is $square->width00 centimeters broad.";

Для чогось складнішого ви повинні використовувати складний синтаксис.

Складний (фігурний) синтаксис

Він називається складним не тому, що важкий у розумінні, а тому, що дозволяє використовувати складні висловлювання.

Фактично, ви можете увімкнути будь-яке значення, що знаходиться у просторі імені у рядку з цим синтаксисом. Ви просто записуєте вираз таким же чином, як і поза рядком, а потім укладаєте його в (і). Оскільки ви не можете екранувати "(", цей синтаксис буде розпізнаватись тільки коли $ слід безпосередньо за (. (Використовуйте "(\$" або "\($"), щоб відобразити "($)). Декілька прикладів пояснення:

// Давайте покажемо всі помилки error_reporting(E_ALL); $ great = "fantastic"; // Не працює, виведе: This is (fantastic) echo "This is ($ great)"; // Працює, виведе: This is fantastic echo "This is ($great)"; echo "This is $(great)"; // Працює echo "Цей квадрат шириною ($square->width) 00 сантиметрів."; // Працює echo "Це працює: ($ arr)"; // Це неправильно з тієї ж причини, що і $ foo неправильно поза / / рядка. Іншими словами, це, як і раніше, буде працювати, але оскільки PHP спочатку шукає константу foo, це викличе // помилку рівня E_NOTICE (невизначена константа). echo "Це неправильно: ($ arr)"; // Працює. При використанні багатовимірних масивів, усередині // рядків завжди використовуйте фігурні дужки echo "Це працює: ($arr["foo"])"; // Працює. echo "Це працює: ". $arr["foo"]; echo "Ви навіть можете записати ($obj->values->name)"; echo "Це значення змінної на ім'я $name: ($($name))";

Доступ до символу в рядку та його зміна

Символи у рядках можна використовувати і модифікувати, визначивши їхнє зміщення щодо початку рядка, починаючи з нуля, у фігурних дужках після рядка.

Зауваження: Для забезпечення зворотної сумісності, ви, як і раніше, маєте можливість використовувати з тією ж метою дужки масиву. Однак, починаючи з PHP 4 цей синтаксис небажаний до використання.

Приклад 11-3. Декілька прикладів рядків

// Отримання першого символу рядка $str = "Це тест."; $first = $str(0); // Отримання третього символу рядка $third = $str(2); // Отримання останнього символу рядка $str = "Це ще тест."; $last = $str(strlen($str)-1); // Зміна останнього символу рядка $str = "Подивися на море"; $str(strlen($str)-1) = "я";

Корисні функції та оператори

Рядки можуть бути об'єднані за допомогою оператора "." (крапка). Зверніть увагу, оператор додавання "+" тут не працює. Додаткову інформацію дивіться у розділі Рядкові оператори.

Для модифікації рядків існує багато корисних функцій.

Основні функції описані в розділі рядкових функцій, функції регулярних виразів для розширеного пошуку та заміни (у двох частинах: Perl та POSIX розширений).

Також існують функції для URL-рядків та функції для шифрування/дешифрування рядків (mcrypt і mhash).

Нарешті, якщо ви ще не знайшли, що шукали, дивіться також функції для символьного типу.

Перетворення на рядок

Ви можете перетворити значення на рядок, використовуючи приведення (string), або функцію strval() . У виразах, де потрібний рядок, перетворення відбувається автоматично. Це відбувається, коли ви використовуєте функції echo() або print() або коли ви порівнюєте значення змінної з рядком. Прочитання розділів посібника Типи і Маніпуляції з типами зробить таке зрозумілішим. Також дивіться settype() .

Бульове (boolean) значення TRUE перетворюється на рядок "1", а значення FALSE представляється як "" (порожній рядок). Цим способом ви можете перетворювати значення в обидві сторони - з бульова типу в рядковий і навпаки.

Ціле (integer) чи число з плаваючою точкою (float) перетворюється на рядок, представлений числом, що з його цифр (включаючи показник ступеня чисел з плаваючою точкою).

Масиви завжди перетворюються на рядок "Array", тому ви не можете відобразити вміст масиву (array), використовуючи echo() або print() , щоб дізнатися, що він містить. Щоб переглянути один елемент, потрібно зробити щось на зразок echo $arr["foo"]. Нижче наведено поради про те, як відобразити/переглянути весь вміст.

Об'єкти завжди перетворюються на рядок "Object". Якщо ви хочете вивести значення змінної-члена об'єкта (object) з метою налагодження, прочитайте наступні абзаци. Якщо потрібно отримати ім'я класу необхідного об'єкта, використовуйте get_class() .

Ресурси завжди перетворюються на рядки із структурою "Resource id #1", де 1 - це унікальний номер ресурсу (resource), присвоєний йому PHP під час виконання. Якщо ви бажаєте отримати тип ресурсу, використовуйте .

NULL завжди перетворюється на порожній рядок.

Як ви могли бачити вище, виведення масивів, об'єктів або ресурсів не надає вам жодної корисної інформації про значення. Найкращий спосіб виведення значень для налагодження - використовувати функції print_r() та var_dump() .

Ви також можете перетворити значення PHP на рядки для постійного зберігання. Цей метод називається серіалізацією і може бути виконаний за допомогою функції serialize(). Крім того, якщо у вашій установці PHP є підтримка WDDX, ви можете серіалізувати значення PHP у структурі XML.

Перетворення рядків у числа

Якщо рядок розпізнається як числове значення, результуюче значення та тип визначається, як показано далі.

Рядок буде розпізнаний як float, якщо він містить будь-який із символів ".", "e", або "E". Інакше її буде визначено як ціле.

Значення визначається по початковій частині рядка. Якщо рядок починається з правильного числового значення, це значення буде використано. Інакше значенням буде 0 (нуль). Вірне числове значення - це одна або більше цифр (що можуть містити десяткову точку), за бажанням попередніх знаком, з наступним необов'язковим показником ступеня. Показник ступеня – це "e" або "E" з наступними однією чи більше цифрами.

$ foo = 1 + "10.5"; // $foo це float (11.5) $foo = 1 + "-1.3e3"; // $foo це float (-1299) $foo = 1 + "bob-1.3e3"; // $foo це integer (1) $foo = 1 + "bob3"; // $foo це integer (1) $foo = 1 + "10 Small Pigs"; // $foo це integer (11) $foo = 4 + "10.2 Little Piggies"; // $foo це float (14.2) $foo = "10.0 pigs" + 1; // $foo це float (11) $foo = "10.0 pigs" + 1.0; // $foo це float (11)

Для отримання докладнішої інформації про це перетворення див. strtod(3) документації Unix.

Якщо ви хочете протестувати будь-який приклад цього розділу, ви можете скопіювати і вставити його і наступний рядок, щоб побачити, що відбувається:

Echo "\$foo==$foo; тип: " . gettype ($ foo) . "
\n";

Не чекайте отримати код символу, перетворивши його на ціле (як ви могли б зробити, наприклад, C). Для перетворення символів на їх коди і назад використовуйте функції ord() і




Top