ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

isset

(PHP 4, PHP 5, PHP 7, PHP 8)

isset β€” ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚, Π±Ρ‹Π»Π° Π»ΠΈ установлСна пСрСмСнная Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΡ‚ null

ОписаниС

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚, Π±Ρ‹Π»Π° Π»ΠΈ установлСна пСрСмСнная Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΡ‚ null

Если Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ isset() Π²Π΅Ρ€Π½Ρ‘Ρ‚ true Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° происходит слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ заканчиваСтся, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠ΄Π΅Ρ‚ встрСчСна нСопрСдСлённая пСрСмСнная.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования isset()

// Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ var_dump для Π²Ρ‹Π²ΠΎΠ΄Π°
// значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ isset().

$a = «test» ;
$b = «anothertest» ;

Ѐункция Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с элСмСнтами массивов:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 isset() ΠΈ строковыС индСксы

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это языковая конструкция, Π° Π½Π΅ функция, ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠŸΡ€ΠΈ использовании isset() Π½Π° нСдоступных свойствах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ __isset(), Ссли ΠΎΠ½ сущСствуСт.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

User Contributed Notes 30 notes

I, too, was dismayed to find that isset($foo) returns false if ($foo == null). Here’s an (awkward) way around it.

Of course, that is very non-intuitive, long, hard-to-understand, and kludgy. Better to design your code so you don’t depend on the difference between an unset variable and a variable with the value null. But «better» only because PHP has made this weird development choice.

In my thinking this was a mistake in the development of PHP. The name («isset») should describe the function and not have the desciption be «is set AND is not null». If it was done properly a programmer could very easily do (isset($var) || is_null($var)) if they wanted to check for this!

The new (as of PHP7) ‘null coalesce operator’ allows shorthand isset. You can use it like so:

You can safely use isset to check properties and subproperties of objects directly. So instead of writing

isset($abc) && isset($abc->def) && isset($abc->def->ghi)

or in a shorter form

you can just write

without raising any errors, warnings or notices.

How to test for a variable actually existing, including being set to null. This will prevent errors when passing to functions.

«empty() is the opposite of (boolean) var, except that no warning is generated when the variable is not set.»

!empty() mimics the chk() function posted before.

in PHP5, if you have

I tried the example posted previously by Slawek:

$foo = ‘a little string’;
echo isset($foo)?’yes ‘:’no ‘, isset($foo[‘aaaa’])?’yes ‘:’no ‘;

He got yes yes, but he didn’t say what version of PHP he was using.

I tried this on PHP 5.0.5 and got: yes no

But on PHP 4.3.5 I got: yes yes

Any foreach or similar will be different before and after the call.

To organize some of the frequently used functions..

Return Values :
Returns TRUE if var exists and has value other than NULL, FALSE otherwise.

isset expects the variable sign first, so you can’t add parentheses or anything.

With this simple function you can check if an array has some keys:

If you regard isset() as indicating whether the given variable has a value or not, and recall that NULL is intended to indicate that a value is _absent_ (as said, somewhat awkwardly, on its manual page), then its behaviour is not at all inconsistent or confusing.

Here is an example with multiple parameters supplied

= array();
$var [ ‘val1’ ] = ‘test’ ;
$var [ ‘val2’ ] = ‘on’ ;

The following code does the same calling «isset» 2 times:

= array();
$var [ ‘val1’ ] = ‘test’ ;
$var [ ‘val2’ ] = ‘on’ ;

Note that isset() is not recursive as of the 5.4.8 I have available here to test with: if you use it on a multidimensional array or an object it will not check isset() on each dimension as it goes.

Imagine you have a class with a normal __isset and a __get that fatals for non-existant properties. isset($object->nosuch) will behave normally but isset($object->nosuch->foo) will crash. Rather harsh IMO but still possible.

// pretend that the methods have implementations that actually try to do work
// in this example I only care about the worst case conditions

// if property does not exist <
echo «Property does not exist!» ;
exit;
// >
>

$obj = new FatalOnGet ();

Uncomment the echos in the methods and you’ll see exactly what happened:

On a similar note, if __get always returns but instead issues warnings or notices then those will surface.

The following is an example of how to test if a variable is set, whether or not it is NULL. It makes use of the fact that an unset variable will throw an E_NOTICE error, but one initialized as NULL will not.

The problem is, the set_error_handler and restore_error_handler calls can not be inside the function, which means you need 2 extra lines of code every time you are testing. And if you have any E_NOTICE errors caused by other code between the set_error_handler and restore_error_handler they will not be dealt with properly. One solution:

?>

Outputs:
True False
Notice: Undefined variable: j in filename.php on line 26

This will make the handler only handle var_exists, but it adds a lot of overhead. Everytime an E_NOTICE error happens, the file it originated from will be loaded into an array.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, курсовых ΠΈ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚ здСсь.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования Π΄ΠΈΡ€Ρ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
ЗдравствуйтС.НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ.Если ΠΏΠΈΡˆΡƒ @mkdir(PATH.’/images/catalog/’.$inUser->id.’/’);.

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ phpΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования Ρ„Π°ΠΉΠ»Π°
НуТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сущСствованиС Ρ„Π°ΠΉΠ»Π°. БСйчас ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽ Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Π½ΡƒΠΆΠ½ΠΎ любой Ρ„Π°ΠΉΠ», Π½ΠΎ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 29 сСкунд

Π΄Π° это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 1 ΠΌΠΈΠ½ΡƒΡ‚Ρƒ
ΠΊΠ°Ρ€ΠΎΡ‡Π΅ Π·Π°Π΄Π°Ρ‡Π° такая я создаю Ρ„ΠΎΡ€ΠΌΡƒ ΠΈΠ· нСсколько вопросов Ссли всС Π΄Π°Π½Π½Ρ‹Π΅ Π²Π΅Ρ€Π½Ρ‹ вывСсти Π½Π° стр 2 Ссли Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° стр 3

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 1 ΠΌΠΈΠ½ΡƒΡ‚Ρƒ
Π»Π°Π΄Π½ΠΎ рСбята спс Π·Π° Ρ‚Ρ€ΡƒΠ΄Ρ‹ я дальшС сам ΠΏΠΎΠ΄ΡƒΠΌΠ°ΡŽ Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ

ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, курсовых ΠΈ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚ здСсь.

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ phpΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования сСссии
Π•ΡΡ‚ΡŒ нСкая Π·Π°Π΄Π°Ρ‡Π°. Π•ΡΡ‚ΡŒ Π½Π° сСрвСрС ΠΏΠ°ΠΏΠΊΠ° с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ temp_dir, Π² Π½Π΅ΠΉ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹.

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ phpIf else нСсколько условий с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ сущСствования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
Π”ΠΎΠ±Ρ€Ρ‹ΠΉ дСнь. ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΡƒΠΌΡ‡Π°Π½Π΅! Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, вопрос покаТСтся ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π³Π»ΡƒΠΏΡ‹ΠΌ ΠΈ элСмСнтарным, Π½ΠΎ Π½Π΅.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° сСрвСрС
всСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΌΠΎΠΉ запрос Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΠ΅ API ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚Π²Π΅Ρ‚ с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΌΠ½Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

НСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ php ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ΄ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ, Π½Ρƒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° пустоту, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ слово ΠΈ Ρ‚.Π΄.

И Π²ΠΎΡ‚ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Ρ‘ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ Ссли Π²Ρ‹ это Π΄Π΅Π»Π°Π»ΠΈ, Ρ‚ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ придСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π’ зависимости ΠΎΡ‚ количСства Β«ifΒ» Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Β«elseΒ», Ссли ΠΎΠ΄Π½ΠΎ Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ – это Π΅Ρ‰Π΅ Π»Π°Π΄Π½ΠΎ, Π° Ссли 3 ΠΈΠ»ΠΈ 5 ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ 10, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ сразу Π½Π΅ ΠΏΠΎ сСбС становится ΠΎΡ‚ этого количСство ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ!

Π‘ΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ это довольно Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ! Π”Π° ΠΈ Π² большом ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ написали, Ρ‡Π΅Ρ€Π΅Π· нСдСлю Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ!

А хочСтся Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ слово ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° Π½Π΅Π³ΠΎ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°.

ВсС способы ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ

НСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ сущСствования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сущСствованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…!

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

Нам Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ всС вмСстС, Π² условии if записываСм всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· and :

И Π΄Π΅Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²Ρ‹ΡˆΠ΅ пСрСчислСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅ сущСствуСт($peremennaya_4 = «»;), Π° Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ прямо здСсь:

Если ΠΌΡ‹ Π² условии ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ поставим Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ, Ρ‚ΠΎΠΌΡ‹ смоТСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ссли всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ сущСствуСт

Π—Π΄Π΅ΡΡŒ сдСлаСм, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ всС Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚!

НСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ сущСствования ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· самого Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°, Π³Π΄Π΅ ΠΎΠ΄Π½Π° пСрСмСнная Π½Π΅ сущСствуСт. Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, см.ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚!

И Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прямо здСсь:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ это ΠΆΠ΅ условиС, Π½ΠΎ никакая пСрСмСнная Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

Но ΠΊΠ°ΠΊ сработаСт нСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Ссли всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

И Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прямо здСсь:

НСсколько каскадных ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ сущСствования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ. Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠΏΡΡ‚ΡŒ возьмСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°. Ρ€Π°Π· ΡƒΠΆ Ρ‚Π°ΠΌ Π½Π΅ сущСствуСт ΠΎΠ΄Π½Π° пСрСмСнная. Π΅Ρ‘ поставим Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ условиС, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π½ΠΈΠΆΠ΅.

И СстСствСнно ΠΌΡ‹ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ здСсь:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ.

НСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ массив

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΎΠΏΡΡ‚ΡŒ, всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚Π° 1 ΠΈ занСсСм всС наши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² массив :

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠ»ΡŽΡ‡ΠΈ Π² массив:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ сущСствованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

НСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π² старом ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π΅

Архив с этим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π½Π΅ стал ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ.

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ систСмы коммСнтирования :

Π€ΠΎΡ€ΠΌΠ° ΠΏΠΎΠΊΠ° доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π΄ΠΌΠΈΠ½Ρƒ. скоро всС Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. надСюсь.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

function_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

ОписаниС

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ строки.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования function_exists()

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π΄Π°ΠΆΠ΅ Ссли саму Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° настроСк ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠΏΡ†ΠΈΠΉ компиляции (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ image).

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

User Contributed Notes 23 notes

You can use this function to conditionally define functions, see: http://php.net/manual/en/functions.user-defined.php

For instance WordPress uses it to make functions «pluggable.» If a plugin has already defined a pluggable function, then the WP code knows not to try to redefine it.

But function_exists() will always return true unless you wrap any later function definition in a conditional clause, like if()<. >. This is a subtle matter in PHP parsing. Some examples:

if ( function_exists ( ‘foo’ )) <
print «foo defined\\n» ;
> else <
print «foo not defined\\n» ;
>
function foo () <>

if ( function_exists ( ‘bar’ )) <
print «bar defined\\n» ;
> else <
print «defining bar\\n» ;
function bar () <>
>
print «calling bar\\n» ;
bar (); // ok to call function conditionally defined earlier

print «calling baz\\n» ;
baz (); // ok to call function unconditionally defined later
function baz () <>

qux (); // NOT ok to call function conditionally defined later
if (! function_exists ( ‘qux’ )) <
function qux () <>
>
?>
Prints:
foo defined
defining bar
calling bar
calling baz
PHP Fatal error: Call to undefined function qux()

Any oddities are probably due to the order in which you include/require files.

It should be noted that the function_exists check is not relative to the root namespace. This means that the namespace should be appended to the check:

PHP supports nested function based on certain criteria.

Please look over the code.

function Audio()
<
echo «Plugged Audo 5.1:
«;
function Volume()
<
echo «Volume controls:
«;
function Equalizer()
<
echo «Equalize Bands:
«;
>
>
>
//Call to nested functions
Audio();
Volume();
Equalizer();

if(function_exists(‘Volume’)):
echo «TRUE»;
else:
echo «FALSE»;
endif;

Case 1: //Result :Works Well
———
Audio();
Volume();
Equalizer();

Case 2: //Results Notice Error. Root function Audio must be called first.
———
Volume();

Case 3: //Results Error. Root function Volume must be called.
———
Audio();
Equalizer();

Note :
The nested function should be called based on their order used.
In our example when Audio is not called and instantly when we try to call Volume puts under error.

Even though there is an possibility to use nested functions in PHP. It looks overhead to do so. Better to avoid in logical ground of script.

Tested on PHP 5.5.32

This is not going to go down as you might expect it should (even if you play smart and require/include_once):

if( function_exists ( ‘my_function’ ))
<
throw new Exception ( «‘my_function’ is already defined!» );
>

function my_function ()
<
// Do the work here
>
?>

This, however does work:

Thought this might save someone a few minutes of debugging time.

function_exists will return false for functions disabled with the disable_functions ini directive. However those functions are still declared so trying to define them yourself will fail.

Functions within a function are better off as anonymous returns from create_function(), unless you want to be able to call it elsewhere.

However, I have used this in skinning: I use alert_box() to display certain errors, like a faulty SQL query. This simply calls display_alert(), which is defined in my skin scripts. However, alert_box() is sometimes called before I know which skin to load, so it has its own functionality which it uses if function_exists(‘display_alert’) returns false.

If you use suhosin.executor.func.blacklist instead of disabled_functions in your php.ini, function_exists will return true for a disabled function. I used this to have the same beahviour with suhosin.executor.func.blacklist and disabled_functions:

To prevent direct calls to included files i use the following technique.

In the main file create an empty function with a random name. Like so:

function hjudejdjiwe () < return true ; >
?>

Then check for the existence of this function within your include:

if (! function_exists ( ‘hjudejdjiwe’ )) < die( '!' ); >
?>

Simple but effective.

i was wondering whether is_callable or function exists is faster when checking class methods.

my results when doing each operation 10000 times with a simple test class were the following:

is_callable: 0.28671383857727 seconds
function_exists: 0.14569997787476 seconds

(following tests have proved this to be true).

thus you can see, function_exists is twice as fast as is_callable.

The confusion expressed in some of the submissions here arise because functions declared outside conditional blocks are defined as the code is loaded and are thus callable and exist wherever in the code they are declared, whereas those declared inside a condition block are not defined until that block is executed. Thus:

echo foo();
function foo()

however because those inside a conditional are defined as they are encountered during code execution

yields: Fatal error: Uncaught Error: Call to undefined function foo()

I would like to comment on the following post:

A note of caution: function_exists() appears to be case-insensitive (at least as of PHP 4.3.8). e.g.:

function MyCasedFunction () <
return true ;
>

// Will return true, even though casing is «wrong»
if ( function_exists ( «mYcAsEdFuNcTiOn» ))
echo «I see it!» ;
?>

I believe that function calls itself are case insensitve, so this function is returning a valid truth. PHP doesn’t care about cases.

function B () <
function C () <
function D ()<>
>
>

IsFunctionExist ( ‘A’ );
IsFunctionExist ( ‘B’ );
IsFunctionExist ( ‘C’ );
IsFunctionExist ( ‘D’ );

I, too, was wondering whether is_callable or function exists is faster when checking class methods. So, I setup the following test:

class test
<
function test ()
<
return true ;
>
>

is_callable = TRUE, function_exists = FALSE

Did 10000 is_callables in 0.0640790462494 seconds
Did 10000 function_exists in 0.0304429531097 seconds

So the fact that function_exists is twice as fast is slightly over shadowed by the fact that it doesn’t work on class methods, at least not as far as I can tell.

This can be used to conditionally define a user function. In this sense, it can act as a sort of inline include_once().

For example, suppose you have a function A that calls function B. B is only used inside function A and is never called from anywhere else in the script. It’s logical (and perfectly legal in PHP) to define B inside of A’s definition, like so:

I stumbled over the same problem as «eddiec» (users not able or not willing to use «_once»-suffixes).

A possible alternative explanation for the behavior:

If a file is included, it is possibly parsed every include-time.(?)
While parsing, every function in global scope is tried to register. THIS gets wrong, when multiple times included, and it produces an error.

If functions are defined within block scopes, their registration seems to be delayed until execution of such a block. Thus, not the function «function_exists» functions wrong, but simply the philosophy of the interpreter produces such results.

Thus, the same effect can be achieved by simply putting block braces around the contents of an include_once file:

if (function_exists(‘function_in_question’)) return;
<
function function_in_question(. )
<
.
>
. other stuff
>

. which is equivalent to.

if (!function_exists(‘function_in_question’))
<
function function_in_question(. )
<
.
>
. other stuff
>

// If you want to chack if the function is enabled or disable in php.ini you can use this function:

function_exists returns false on NULL and empty string:

if ( function_exists ( » )) <
echo «empty string function exists\n» ;
>

if ( function_exists ( NULL )) <
echo «NULL function exists\n» ;
>
?>

Neither of the echo statements happen when I run this.

Note that function_exists will return TRUE in the following situation, presumably because the function «testfunc» was defined when the script was PARSED/ITERPRETED, before the function_exists call was made at RUNTIME:

if ( function_exists ( ‘testfunc’ )) return;
function testfunc () < >
?>

So, this construction is not useful for preventing testfunc from being multiply defined if the script is muliply included or required.

However, the following construction DOES work to prevent multiple defines of testfunc:

if (! function_exists ( ‘testfunc’ )) <
function testfunc () < >
>
?>

CONTRAST this with similar uses of defined() which is completely runtime evaluated. These both work:

function_exists() does not cache its query internally.

by executing the following code

There is a 0.16878 seconds improvement, when you use static array to cache methods existence.

to bob at thethirdshift dot net
regarding is_callable vs function_exists.

using your code
is_callable = TRUE, function_exists = FALSE

Did 10000 is_callables in 0.0443360805511 seconds
Did 10000 function_exists in 0.0111110210419 seconds

then we replace
is_callable(array(‘test’,’test’));
with
$callarray = array(‘test’,’test’); // place this outside for-loop
is_callable($callarray);

is_callable = TRUE, function_exists = FALSE

Did 10000 is_callables in 0.0314660072327 seconds
Did 10000 function_exists in 0.0120670795441 seconds

then we replace
is_callable(array(‘test’,’test’));
with
is_callable(‘test’,’test’);

is_callable = TRUE, function_exists = FALSE

Did 10000 is_callables in 0.00991606712341 seconds
Did 10000 function_exists in 0.0113790035248 seconds

I hope you can see that loop-testing functions is not so simple. πŸ™‚

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² POST?

Π£ мСня Π΅ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ° ΠΈ ajax ΠΊΠΎΠ΄ которая всС это отправляСт, Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² полях.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° isset(), empty() Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!(

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ я Π΄Π΅Π»Π°Π» Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ объявлялись Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.
Π’ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ происходит?

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

PHP ΠΊΠΎΠ΄ ΡƒΠΊΠ°Π·Π°Π½ Π² тСкстС вопроса. Π­Ρ‚ΠΎ всС Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ.

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

prepared statements ΠΈ Π² ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ экранированиС ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…

я Π½Π΅ углублялся. Π Π°Π· ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ.

Π—Π° ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, всС эти вопросы Π² цСлях своСго обучСния. ΠŸΠΎΡΡ‚Ρ€Π°Π΄Π°Π²ΡˆΠΈΡ… Π½Π΅Ρ‚Ρƒ. И адский ΠΏΡ…ΠΏ ΠΊΠΎΠ΄ находится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΌΠΎΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΠΊΠ΅, ΠΈ прямая ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° поста Π² запрос Π‘Π” ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚, скаТСм Ρ‚Π°ΠΊ, Π‘ΠœΠ•Π Π’ΡŠ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΅ΠΉ Π‘Π”.

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ° Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΠΎΡ‚Π΅Ρ€ΡΠ½Π° ΠΎΠ΄Π½Π° Π±ΡƒΠΊΠ²Π° «r»

А ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· isset() + empty()

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

эквивалСнтно Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ php

А ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π² постС всСгда Π΅ΡΡ‚ΡŒ. Если Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° пустоту, Ρ‚ΠΎ это дСлаСтся совсСм Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ функциями.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *