Глава 9. бШПЮФЕМХЪ

бШПЮФЕМХЪ - ЩРН ЙПЮЕСЦНКЭМШИ ЙЮЛЕМЭ PHP. оНВРХ БЯЕ, ВРН БШ ОХЬХРЕ Б PHP, ЪБКЪЕРЯЪ БШПЮФЕМХЕЛ. яЮЛНЕ ОПНЯРНЕ Х РНВМНЕ НОПЕДЕКЕМХЕ БШПЮФЕМХЪ - "БЯЕ ВРН СЦНДМН, ХЛЕЧЫЕЕ ГМЮВЕМХЕ".

нЯМНБМШЛХ ТНПЛЮЛХ БШПЮФЕМХИ ЪБКЪЧРЯЪ ЙНМЯРЮМРШ Х ОЕПЕЛЕММШЕ. еЯКХ БШ ГЮОХЯШБЮЕРЕ "$a = 5", БШ ОПХЯБЮХБЮЕРЕ '5' ОЕПЕЛЕММНИ $a. '5', НВЕБХДМН, ХЛЕЕР ГМЮВЕМХЕ 5 ХКХ, ДПСЦХЛХ ЯКНБЮЛХ, '5' ЩРН БШПЮФЕМХЕ ЯН ГМЮВЕМХЕЛ 5 (Б ДЮММНЛ ЯКСВЮЕ '5' ЩРН ЖЕКНВХЯКЕММЮЪ ЙНМЯРЮМРЮ).

оНЯКЕ ЩРНЦН ОПХЯБНЕМХЪ БШ НФХДЮЕРЕ, ВРН ГМЮВЕМХЕЛ $a РЮЙФЕ ЪБКЪЕРЯЪ 5, ОНЩРНЛС, ЕЯКХ БШ МЮОХЯЮКХ $b = $a, БШ ОНКЮЦЮЕРЕ, ВРН ПЮАНРЮРЭ ЩРН АСДЕР РЮЙ ФЕ, ЙЮЙ ЕЯКХ АШ БШ МЮОХЯЮКХ $b = 5. дПСЦХЛХ ЯКНБЮЛХ, $a ЩРН РЮЙФЕ БШПЮФЕМХЕ ЯН ГМЮВЕМХЕЛ 5. еЯКХ БЯЕ ПЮАНРЮЕР БЕПМН, РН ХЛЕММН РЮЙ Х ОПНХГНИДЕР.

мЕЛМНЦН АНКЕЕ ЯКНФМШЛХ ОПХЛЕПЮЛХ БШПЮФЕМХИ ЪБКЪЧРЯЪ ТСМЙЖХХ. мЮОПХЛЕП, ПЮЯЯЛНРПХЛ ЯКЕДСЧЫСЧ ТСМЙЖХЧ:

<?php
function foo ()
{
    return
5;
}
?>

хЯУНДЪ ХГ РНЦН, ВРН БШ УНПНЬН ГМЮЙНЛШ Я ЙНМЖЕОЖХЕИ ТСМЙЖХИ (ЕЯКХ МЕР, РН ОПНВХРЮИРЕ ЦКЮБС Н ТСМЙЖХЪУ), БШ ОНКЮЦЮЕРЕ, ВРН ГЮОХЯЭ $c = foo() ЮАЯНКЧРМН ЩЙБХБЮКЕМРЮ ГЮОХЯХ $c = 5, Х БШ ОПЮБШ. тСМЙЖХХ - ЩРН БШПЮФЕМХЪ, ГМЮВЕМХЕЛ ЙНРНПШУ ЪБКЪЕРЯЪ РН, ВРН БНГБПЮЫЮЕР ТСМЙЖХЪ. оНЯЙНКЭЙС foo() БНГБПЮЫЮЕР 5, ГМЮВЕМХЕЛ БШПЮФЕМХЪ 'foo()' ЪБКЪЕРЯЪ 5. йЮЙ ОПЮБХКН, ТСМЙЖХХ БНГБПЮЫЮЧР МЕ ОПНЯРН ЯРЮРХВЕЯЙНЕ ГМЮВЕМХЕ, Ю ВРН-РН БШВХЯКЪЧР.

пЮГСЛЕЕРЯЪ, ГМЮВЕМХЪ Б PHP МЕ НАЪГЮМШ АШРЭ ЖЕКНВХЯКЕММШЛХ, Х НВЕМЭ ВЮЯРН ХЛХ МЕ ЪБКЪЧРЯЪ. PHP ОНДДЕПФХБЮЕР РПХ РХОЮ ЯЙЮКЪПМШУ ГМЮВЕМХИ: ЖЕКНВХЯКЕММШЕ, Я ОКЮБЮЧЫЕИ РНВЙНИ Х ЯРПНЙНБШЕ ГМЮВЕМХЪ (ЯЙЮКЪПМШЛХ ЪБКЪЧРЯЪ ГМЮВЕМХЪ, ЙНРНПШЕ БШ МЕ ЛНФЕРЕ 'ПЮГАХРЭ' МЮ ЛЕМЭЬХЕ ВЮЯРХ, Б НРКХВХЕ, МЮОПХЛЕП, НР ЛЮЯЯХБНБ). PHP ОНДДЕПФХБЮЕР РЮЙФЕ ДБЮ ЙНЛАХМХПНБЮММШУ (МЕ ЯЙЮКЪПМШУ) РХОЮ: ЛЮЯЯХБШ Х НАЗЕЙРШ. йЮФДШИ ХГ ЩРХУ РХОНБ ГМЮВЕМХИ ЛНФЕР ОПХЯБЮХБЮРЭЯЪ ОЕПЕЛЕММНИ ХКХ БНГБПЮЫЮРЭЯЪ ТСМЙЖХЕИ.

дН ЯХУ ОНП ОНКЭГНБЮРЕКХ PHP/FI 2 МЕ ДНКФМШ АШКХ ОНВСБЯРБНБЮРЭ ЙЮЙХУ-КХАН ХГЛЕМЕМХИ. нДМЮЙН PHP, ЙЮЙ Х ЛМНЦХЕ ДПСЦХЕ ЪГШЙХ, ОНМХЛЮЕР ЦНПЮГДН АНКЭЬЕ БШПЮФЕМХИ. PHP - ЩРН ЪГШЙ, НПХЕМРХПНБЮММШИ МЮ БШПЮФЕМХЪ Х ПЮЯЯЛЮРПХБЮЧЫХИ ОНВРХ БЯЕ ЙЮЙ БШПЮФЕМХЕ. бЕПМЕЛЯЪ Й ОПХЛЕПС, Я ЙНРНПШЛ ЛШ СФЕ ХЛЕКХ ДЕКН: '$a = 5'. кЕЦЙН ГЮЛЕРХРЭ, ВРН ГДЕЯЭ ОПХЯСРЯРБСЧР ДБЮ ГМЮВЕМХЪ - ГМЮВЕМХЕ ЖЕКНВХЯКЕММНИ ЙНМЯРЮМРШ '5' Х ГМЮВЕМХЕ ОЕПЕЛЕММНИ $a, РЮЙФЕ ОПХМХЛЮЧЫЕИ ГМЮВЕМХЕ 5. мН МЮ ЯЮЛНЛ ДЕКЕ ГДЕЯЭ ОПХЯСРЯРБСЕР Х ЕЫЕ НДМН ГМЮВЕМХЕ - ГМЮВЕМХЕ ЯЮЛНЦН ОПХЯБНЕМХЪ. яЮЛН ОПХЯБНЕМХЕ БШВХЯКЪЕРЯЪ Б ОПХЯБНЕММНЕ ГМЮВЕМХЕ, Б ДЮММНЛ ЯКСВЮЕ - Б 5. мЮ ОПЮЙРХЙЕ ЩРН НГМЮВЮЕР, ВРН '$a = 5', МЕГЮБХЯХЛН НР РНЦН, ВРН НМН ДЕКЮЕР, ЪБКЪЕРЯЪ БШПЮФЕМХЕЛ ЯН ГМЮВЕМХЕЛ 5. рЮЙХЛ НАПЮГНЛ, ГЮОХЯЭ '$b = ($a = 5)' ПЮБМНЯХКЭМЮ ГЮОХЯХ '$a = 5; $b = 5;' (РНВЙЮ Я ГЮОЪРНИ НАНГМЮВЮЕР ЙНМЕЖ БШПЮФЕМХЪ). оНЯЙНКЭЙС НОЕПЮЖХХ ОПХЯБНЕМХЪ ЮМЮКХГХПСЧРЯЪ ЯОПЮБЮ МЮКЕБН, БШ РЮЙФЕ ЛНФЕРЕ МЮОХЯЮРЭ '$b = $a = 5'.

дПСЦНИ УНПНЬХИ ОПХЛЕП НПХЕМРХПНБЮММНЯРХ МЮ БШПЮФЕМХЪ - ОПЕ- Х ОНЯРТХЙЯМШИ ХМЙПЕЛЕМР Х ДЕЙПЕЛЕМР. оНКЭГНБЮРЕКХ PHP/FI 2 Х ЛМНЦХУ ДПСЦХУ ЪГШЙНБ БНГЛНФМН СФЕ ГМЮЙНЛШ Я ТНПЛНИ ГЮОХЯХ ОЕПЕЛЕММЮЪ++ Х ОЕПЕЛЕММЮЪ--. щРН НОЕПЮРНПШ ХМЙПЕЛЕМРЮ Х ДЕЙПЕЛЕМРЮ. б PHP/FI 2 НОЕПЮЖХЪ '$a++' МЕ ХЛЕЕР ГМЮВЕМХЪ (ЩРН МЕ БШПЮФЕМХЕ), Х, РЮЙХЛ НАПЮГНЛ, БШ МЕ ЛНФЕРЕ ОПХЯБНХРЭ ЕЕ ХКХ ЙЮЙХЛ-КХАН НАПЮГНЛ ХЯОНКЭГНБЮРЭ. PHP СБЕКХВХБЮЕР БНГЛНФМНЯРХ ХМЙПЕЛЕМРЮ/ДЕЙПЕЛЕМРЮ, РЮЙФЕ ЯДЕКЮБ ХУ БШПЮФЕМХЪЛХ, ЙЮЙ Б C. рЮЙФЕ ЙЮЙ Х C, PHP ОНДДЕПФХБЮЕР ДБЮ РХОЮ ХМЙПЕЛЕМРЮ - ОПЕТХЙЯМШИ Х ОНЯРТХЙЯМШИ. нМХ НАЮ ХМЙПЕЛЕМРХПСЧР ГМЮВЕМХЕ ОЕПЕЛЕММНИ Х ЩТТЕЙР ХУ ДЕИЯРБХЪ МЮ МЕЕ НДХМЮЙНБ. пЮГМХЖЮ ЯНЯРНХР Б ГМЮВЕМХХ БШПЮФЕМХЪ ХМЙПЕЛЕМРЮ. оПЕТХЙЯМШИ ХМЙПЕЛЕМР, ГЮОХЯШБЮЕЛШИ ЙЮЙ '++$variable', БШВХЯКЪЕРЯЪ Б ХМЙПЕЛЕМРХПНБЮММНЕ ГМЮВЕМХЕ (PHP ХМЙПЕЛЕМРХПСЕР ОЕПЕЛЕММСЧ ОЕПЕД РЕЛ ЙЮЙ ОПНВЕЯРЭ ЕЕ ГМЮВЕМХЕ, НРЯЧДЮ МЮГБЮМХЕ 'ОПЕ-ХМЙПЕЛЕМР'). оНЯРТХЙЯМШИ ХМЙПЕЛЕМР, ГЮОХЯШБЮЕЛШИ ЙЮЙ '$variable++', БШВХЯКЪЕРЯЪ Б ОЕПБНМЮВЮКЭМНЕ ГМЮВЕМХЕ ОЕПЕЛЕММНИ $variable ОЕПЕД ЕЕ ОПХПЮЫЕМХЕЛ (PHP ХМЙПЕЛЕМРХПСЕР ОЕПЕЛЕММСЧ ОНЯКЕ ОПНВРЕМХЪ ЕЕ ГМЮВЕМХЪ, НРЯЧДЮ МЮГБЮМХЕ 'ОНЯР-ХМЙПЕЛЕМР').

нВЕМЭ ПЮЯОПНЯРПЮМЕММШЛ РХОНЛ БШПЮФЕМХИ ЪБКЪЧРЯЪ БШПЮФЕМХЪ ЯПЮБМЕМХЪ. нМХ БШВХЯКЪЧРЯЪ Б 0 ХКХ 1, НГМЮВЮЧЫХУ ЯННРБЕРЯРБЕММН FALSE (КНФЭ) ХКХ TRUE (ХЯРХМС). PHP ОНДДЕПФХБЮЕР > (АНКЭЬЕ), >= (АНКЭЬЕ КХАН ПЮБМН), == (ПЮБМН), != (МЕ ПЮБМН), < (ЛЕМЭЬЕ) Х <= (ЛЕМЭЬЕ КХАН ПЮБМН). нМ РЮЙФЕ ОНДДЕПФХБЮЕР НОЕПЮРНПШ ЯРПНЦНЦН ПЮБЕМЯРБЮ: === (ПЮБМН Х НДМНЦН РХОЮ) Х !== (МЕ ПЮБМН ХКХ МЕ НДМНЦН РХОЮ). вЮЫЕ БЯЕЦН ЩРХ БШПЮФЕМХЪ ХЯОНКЭГСЧРЯЪ Б СЯКНБХЪУ БШОНКМЕМХЪ НОЕПЮРНПНБ, РЮЙХУ ЙЮЙ if.

оНЯКЕДМХИ ОПХЛЕП БШПЮФЕМХИ, ЙНРНПШИ ЛШ ГДЕЯЭ ПЮЯЯЛНРПХЛ, ЩРН ЯЛЕЬЮММШЕ БШПЮФЕМХЪ НОЕПЮЖХХ Х ОПХЯБНЕМХЪ. бШ СФЕ ГМЮЕРЕ, ВРН ЕЯКХ БШ УНРХРЕ СБЕКХВХРЭ $a МЮ 1, БШ ЛНФЕРЕ ОПНЯРН МЮОХЯЮРЭ '$a++' ХКХ '++$a'. мН ВРН, ЕЯКХ БШ УНРХРЕ ОПХАЮБХРЭ АНКЭЬЕ, ВЕЛ ЕДХМХЖС, МЮОПХЛЕП, 3? бШ ЛНЦКХ АШ МЮОХЯЮРЭ '$a++' ЛМНЦН ПЮГ, НДМЮЙН, НВЕБХДМН ЩРН МЕ НВЕМЭ ПЮЖХНМЮКЭМШИ ХКХ СДНАМШИ ЯОНЯНА. цНПЮГДН АНКЕЕ ПЮЯОПНЯРПЮМЕММНИ ОПЮЙРХЙНИ ЪБКЪЕРЯЪ ГЮОХЯЭ БХДЮ '$a = $a + 3'. '$a + 3' БШВХЯКЪЕРЯЪ Б ГМЮВЕМХЕ $a ОКЧЯ 3 Х ЯМНБЮ ОПХЯБЮХБЮЕРЯЪ $a, СБЕКХВХБЮЪ Б ПЕГСКЭРЮРЕ $a МЮ 3. б PHP, ЙЮЙ Х Б МЕЙНРНПШУ ДПСЦХУ ЪГШЙЮУ, РЮЙХУ ЙЮЙ C, БШ ЛНФЕРЕ ГЮОХЯЮРЭ ЩРН АНКЕЕ ЙНПНРЙХЛ НАПЮГНЛ, ВРН СБЕКХВХР НВЕБХДМНЯРЭ ЯЛШЯКЮ Х АШЯРПНРС ОНМХЛЮМХЪ ЙНДЮ ОН ОПНЬЕЯРБХХ БПЕЛЕМХ. оПХАЮБХРЭ 3 Й РЕЙСЫЕЛС ГМЮВЕМХЧ $a ЛНФМН Я ОНЛНЫЭЧ ГЮОХЯХ '$a += 3'. щРН НГМЮВЮЕР ДНЯКНБМН "БГЪРЭ ГМЮВЕМХЕ $a, ОПХАЮБХРЭ Й МЕЛС 3 Х ЯМНБЮ ОПХЯБНХРЭ ЕЦН ОЕПЕЛЕММНИ $a". йПНЛЕ АНКЭЬЕИ ОНМЪРМНЯРХ Х ЙПЮРЙНЯРХ, ЩРН АШЯРПЕЕ ПЮАНРЮЕР. гМЮВЕМХЕЛ '$a += 3', ЙЮЙ Х НАШВМНЦН ОПХЯБНЕМХЪ, ЪБКЪЕРЯЪ ОПХЯБНЕММНЕ ГМЮВЕМХЕ. нАПЮРХРЕ БМХЛЮМХЕ, ВРН ЩРН ме 3, Ю ЯСЛЛХПНБЮММНЕ ГМЮВЕМХЕ $a ОКЧЯ 3 (РН, ВРН АШКН ОПХЯБНЕМН $a). рЮЙХЛ НАПЮГНЛ ЛНФЕР ХЯОНКЭГНБЮРЭЯЪ КЧАНИ ДБСУЛЕЯРМШИ НОЕПЮРНП, МЮОПХЛЕП, '$a -= 5' (БШВЕЯРЭ 5 ХГ ГМЮВЕМХЪ $a), '$b *= 7' (СЛМНФХРЭ ГМЮВЕМХЕ $b МЮ 7) Х Р.Д.

яСЫЕЯРБСЕР ЕЫЕ НДМН БШПЮФЕМХЕ, ЙНРНПНЕ ЛНФЕР БШЦКЪДЕРЭ МЕНАШВМШЛ, ЕЯКХ БШ МЕ БЯРПЕВЮКХ ЕЦН Б ДПСЦХУ ЪГШЙЮУ - РЕПМЮПМШИ СЯКНБМШИ НОЕПЮРНП:

<?php
$first
? $second : $third
?>

еЯКХ ГМЮВЕМХЕЛ ОЕПБНЦН ОНДБШПЮФЕМХЪ ЪБКЪЕРЯЪ TRUE (МЕ МНКЭ), БШОНКМЪЕРЯЪ БРНПНЕ ОНДБШПЮФЕМХЕ, ЙНРНПНЕ Х АСДЕР ПЕГСКЭРЮРНЛ СЯКНБМНЦН БШПЮФЕМХЪ. б ОПНРХБМНЛ ЯКСВЮЕ, АСДЕР БШОНКМЕМН РПЕРЭЕ ОНДБШПЮФЕМХЕ Х ЕЦН ГМЮВЕМХЕ АСДЕР ПЕГСКЭРЮРНЛ.

яКЕДСЧЫХИ ОПХЛЕП ДНКФЕМ ОНЛНВЭ БЮЛ МЕЛМНЦН СКСВЬХРЭ ОНМХЛЮМХЕ ОПЕТХЙЯМНЦН Х ОНЯРТХЙЯМНЦН ХМЙПЕЛЕМРЮ Х БШПЮФЕМХИ:

<?php
function double($i)
{
    return
$i*2;
}
$b = $a = 5;        /* ОПХЯБНХРЭ ГМЮВЕМХЕ ОЪРЭ ОЕПЕЛЕММШЛ $a Х $b */
$c = $a++;          /* ОНЯРТХЙЯМШИ ХМЙПЕЛЕМР, ОПХЯБНХРЭ ГМЮВЕМХЕ $a
                       (5) ОЕПЕЛЕММНИ $c */
$e = $d = ++$b;     /* ОПЕТХЙЯМШИ ХМЙПЕЛЕМР, ОПХЯБНХРЭ СБЕКХВЕММНЕ
                       ГМЮВЕМХЕ $b (6) ОЕПЕЛЕММШЛ $d Х $e */

/* Б ЩРНИ РНВЙЕ Х $d, Х $e ПЮБМШ 6 */

$f = double($d++);  /* ОПХЯБНХРЭ СДБНЕММНЕ ГМЮВЕМХЕ $d ОЕПЕД
                       ХМЙПЕЛЕМРНЛ (2*6 = 12) ОЕПЕЛЕММНИ $f */
$g = double(++$e);  /* ОПХЯБНХРЭ СДБНЕММНЕ ГМЮВЕМХЕ $e ОНЯКЕ
                       ХМЙПЕЛЕМРЮ (2*7 = 14) ОЕПЕЛЕММНИ $g */
$h = $g += 10;      /* ЯМЮВЮКЮ ОЕПЕЛЕММЮЪ $g СБЕКХВХБЮЕРЯЪ МЮ 10,
                       ОПХНАПЕРЮЪ, Б ХРНЦЕ, ГМЮВЕМХЕ 24. гЮРЕЛ ГМЮВЕМХЕ
                       ОПХЯБНЕМХЪ (24) ОПХЯБЮХБЮЕРЯЪ ОЕПЕЛЕММНИ $h,
                       ЙНРНПЮЪ Б ХРНЦЕ РЮЙФЕ ЯРЮМНБХРЯЪ ПЮБМНИ 24. */
?>

мЕЙНРНПШЕ БШПЮФЕМХЪ ЛНЦСР ПЮЯЯЛЮРПХБЮРЭЯЪ ЙЮЙ ХМЯРПСЙЖХХ. б ДЮММНЛ ЯКСВЮЕ ХМЯРПСЙЖХЪ ХЛЕЕР БХД 'БШПЮФЕМХЕ' ';' - БШПЮФЕМХЕ Я ОНЯКЕДСЧЫЕИ РНВЙНИ Я ГЮОЪРНИ. б ГЮОХЯХ '$b=$a=5;', $a=5 - ЩРН БЕПМНЕ БШПЮФЕМХЕ, МН ЯЮЛН ОН ЯЕАЕ МЕ ХМЯРПСЙЖХЪ. рНЦДЮ ЙЮЙ '$b=$a=5;' ЪБКЪЕРЯЪ БЕПМНИ ХМЯРПСЙЖХЕИ.

оНЯКЕДМЕЕ, ВРН ЯРНХР СОНЛЪМСРЭ, ЩРН ХЯРХММНЯРЭ ГМЮВЕМХЪ БШПЮФЕМХИ. бН ЛМНЦХУ ЯКСВЮЪУ, ЙЮЙ ОПЮБХКН, Б СЯКНБМШУ НОЕПЮРНПЮУ Х ЖХЙКЮУ, БЮЯ ЛНФЕР ХМРЕПЕЯНБЮРЭ МЕ ЙНМЙПЕРМНЕ ГМЮВЕМХЕ БШПЮФЕМХЪ, Ю РНКЭЙН ГМЮВЮР КХ НМХ TRUE ХКХ FALSE. йНМЯРЮМРШ TRUE Х FALSE (ПЕЦХЯРПН-МЕГЮБХЯХЛШЕ) - ЩРН ДБЮ БНГЛНФМШУ АСКЕБШУ ГМЮВЕМХЪ. оПХ МЕНАУНДХЛНЯРХ БШПЮФЕМХЕ ЮБРНЛЮРХВЕЯЙХ ОПЕНАПЮГСЕРЯЪ Б АСКЕБ РХО. оНДПНАМЕЕ Н РНЛ, ЙЮЙ ЩРН ОПНХЯУНДХР, ЯЛНРПХРЕ Б ПЮГДЕКЕ Н ОПХБЕДЕМХХ РХОНБ.

PHP ОПЕДНЯРЮБКЪЕР ОНКМСЧ Х ЛНЫМСЧ ПЕЮКХГЮЖХЧ БШПЮФЕМХИ, Х ХУ ОНКМНЕ ДНЙСЛЕМРХПНБЮМХЕ БШУНДХР ГЮ ПЮЛЙХ ЩРНЦН ПСЙНБНДЯРБЮ. бШЬЕОПХБЕДЕММШЕ ОПХЛЕПШ ДНКФМШ ДЮРЭ БЮЛ ОПЕДЯРЮБКЕМХЕ Н РНЛ, ВРН НМХ ХГ ЯЕАЪ ОПЕДЯРЮБКЪЧР Х ЙЮЙ БШ ЯЮЛХ ЛНФЕРЕ ЯНГДЮБЮРЭ ОНКЕГМШЕ БШПЮФЕМХЪ. дЮКЕЕ, ДКЪ НАНГМЮВЕМХЪ КЧАНЦН БЕПМНЦН БШПЮФЕМХЪ PHP Б ЩРНИ ДНЙСЛЕМРЮЖХХ ЛШ АСДЕЛ ХЯОНКЭГНБЮРЭ ЯНЙПЮЫЕМХЕ expr.


HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ