Php ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: PHP: gettype — Manual

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

PHP ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π½Π° Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ) Π² PHP.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² PHP

Π’ Π²Π°ΡˆΠΈΡ… скриптах ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π°, это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Π§Π°Ρ‰Π΅ всСго, смотрим, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρ…ΠΎΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

<?
if (!empty($var)):
  // code here
endif;

Π’ этом языкС программирования Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ динамичСской (Ρ‚Π°ΠΊΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «слабая типизация«). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ строка ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ числом, Ссли ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ слоТСния.
Π—Π° это, кстати говоря, Ρƒ PHP Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ нСнавистников πŸ™‚ .

ВСрнСмся ΠΊ нашСй Ρ‚Π΅ΠΌΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:

if (is_array($arr)) {
 // пСрСмСнная являСтся массивом
}

/*
is_bool() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, являСтся Π»ΠΈ пСрСмСнная Π±ΡƒΠ»Π΅Π²ΠΎΠΉ
is_int() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, являСтся Π»ΠΈ пСрСмСнная Ρ†Π΅Π»Ρ‹ΠΌ числом
is_numeric() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, являСтся Π»ΠΈ пСрСмСнная числом ΠΈΠ»ΠΈ строкой, содСрТащСй число
is_float() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, являСтся Π»ΠΈ пСрСмСнная числом с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ
is_string() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, являСтся Π»ΠΈ пСрСмСнная строкой
is_object() - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, являСтся Π»ΠΈ пСрСмСнная ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

*/

МоТСм ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° массив, Π½Π° Ρ‚ΠΈΠΏ Π±ΡƒΠ»Π΅Π²ΠΎ (true ΠΈΠ»ΠΈ false), число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ число, строку ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π² Π²Π°ΡˆΠΈΡ… скриптах. НапримСр, стоит Π·Π°Π΄Π°Ρ‡Π°: Ссли ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅ число, Ρ‚ΠΎ ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ,Β  Π° Ссли с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Ρ‚ΠΎ округляСм Π² ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ сторону Π½Π° Β«ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ-Ρ‚ΠΎΒ» Π·Π½Π°ΠΊΠΎΠ².

Π’Π°ΠΊΠΆΠ΅, Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ число, Ρ‚Π°ΠΊ ΠΈ массив, ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС эти Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ для NULL:

is_null()

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π²ΠΎΡ‚ простыС ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ наш ΠΊΠΎΠ΄ πŸ™‚

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Go

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Go🏠|ITπŸ’»Β IT|CodeΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅|GoGolang|

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

package main

import (
"fmt"
"reflect"
)

func main() {

var_str := "string"
var_int := 10
var_float64 := 1.2
var_bool := true
var_complex128 := complex(2, 3)
r, im := real(var_complex128), imag(var_complex128)

fmt.Println(reflect.TypeOf(var_str))
fmt.Println(reflect.TypeOf(var_int))
fmt.Println(reflect.TypeOf(var_float64))
fmt.Println(reflect.TypeOf(var_bool))
fmt.Println(reflect.TypeOf(var_complex128))
fmt.Println(reflect.TypeOf(r), reflect.TypeOf(im))

}

string

int

float64

bool

complex128

float64 float64

Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΈ сотрудничСство:
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ наш хостинг beget.ru
ΠŸΠΈΡˆΠΈΡ‚Π΅ Π½Π°
[email protected] Ссли Π’Ρ‹:
1. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ для нашСго сайта ΠΈΠ»ΠΈ пСрСвСсти ΡΡ‚Π°Ρ‚ΡŒΡŽ Π½Π° свой Ρ€ΠΎΠ΄Π½ΠΎΠΉ язык.
2. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° сайтС Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽΡŽ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.
3. Π Π΅ΠΊΠ»Π°ΠΌΠ° Π½Π° ΠΌΠΎΡ‘ΠΌ сайтС ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ†Π΅Π½Π·ΡƒΡ€Ρ‹. Если Π’Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ
Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ нСдопустимый для просмотра Π΄Π΅Ρ‚ΡŒΠΌΠΈ школьного возраста, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ шок
ΠΈΠ»ΠΈ вводящий Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ — поТалуйста ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅
4. Нашли Π½Π° сайтС ΠΎΡˆΠΈΠ±ΠΊΡƒ, нСточности, Π±Π°Π³ ΠΈ Ρ‚.Π΄.

…….
5. Π‘Ρ‚Π°Ρ‚ΡŒΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠ°Ρ€ΠΈΡ‚ΡŒ Π² соцсСтях, Π½Π°ΠΆΠ°Π² Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡƒ сСти:

Π’Ρ€ΡŽΠΊΠΈ с Π’ΠΈΠΏΠ°ΠΌΠΈ

PHP Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ (ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚) явного опрСдСлСния Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈ объявлСнии
ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ; Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСтся ΠΏΠΎ контСксту, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π°
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π²Ρ‹ присваиваСтС строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ var,
var становится строкой. Если Π²Ρ‹ Π·Π°Ρ‚Π΅ΠΌ присваиваСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ var
цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ½Π° становится Ρ†Π΅Π»Ρ‹ΠΌ числом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ автоматичСской ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π² PHP являСтся опСрация слоТСния ‘+’.
Если любой ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² float, Ρ‚ΠΎ всС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ float, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚
float. Если ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ†Π΅Π»Ρ‹Π΅ числа, Ρ‚ΠΎ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ цСлочислСнным.
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ этом НЕ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΡ‹ самих ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ²; это
дСлаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° этапС вычислСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ².

$foo = "0";  // $foo это строка (ASCII 48)

$foo += 2;   // Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ $foo это integer (2)
$foo = $foo + 1.3;  // Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ $foo это float (3.3)
$foo = 5 + "10 Little Piggies"; // $foo это integer (15)
$foo = 5 + "10 Small Pigs";     // $foo это integer (15)

Если послСдниС Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° нСпонятны, см.
ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ строк.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вычислСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ,
см. Ρ€Π°Π·Π΄Π΅Π» ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ². Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, см.
settype().

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² этого Ρ€Π°Π·Π΄Π΅Π»Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
var_dump().

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ автоматичСской ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ для массива Π² настоящСС врСмя Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ.

$a = 1;       // $a это integer
$a[0] = "f";  // $a становится массивом, Π° $a[0] содСрТит "f"

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ каТСтся ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ, дСлая
$a массивом, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТит ‘f’. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим:

$a = "1";     // $a это string
$a[0] = "f";  // Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ со смСщСниСм строки? Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚?

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PHP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ индСксированиС Π² строках Ρ‡Π΅Ρ€Π΅Π· смСщСниС с
использованиСм Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ синтаксиса, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ индСксировании массива,
Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создаст ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ: Π΄ΠΎΠ»ΠΆΠ½Π° Π»ΠΈ $a ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ массивом с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом
«f», ΠΈΠ»ΠΈ «f» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ символом строки $a?

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этого, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² PHP 3.0.12 ΠΈ PHP 4.0b3-RC4, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этой
автоматичСской ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ рассматриваСтся ΠΊΠ°ΠΊ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ/undefined. ΠŸΡƒΡ‚ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² PHP Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² C: имя Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
записываСтся Π² скобках ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, которая ΠΊ этому Π½ΠΎΠ²ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ приводится.

$foo = 10;   		// $foo это integer
$bar = (float) $foo;    // $bar это float

Π”ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ привСдСния Ρ‚ΠΈΠΏΠΎΠ²:

  • (int), (integer) — ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ integer

  • (bool), (boolean) — ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ boolean

  • (float), (double), (real) — ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ float

  • (string) — ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ string

  • (array) — ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ array

  • (object) — ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ object

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
вмСсто привСдСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊ строкС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок, поэтому
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ эквивалСнтны:

$foo = (int) $bar;
$foo = ( int ) $bar;

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ сСйчас Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ см. Ρ€Π°Π·Π΄Π΅Π»Ρ‹:

ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ форсировании ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ· массива Π² строку, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ станСт слово
Array. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ форсировании ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² строку, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ
станСт слово Object.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ скалярной ΠΈΠ»ΠΈ строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊ массиву, пСрСмСнная
станСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом этого массива:

$var = 'ciao';
$arr = (array) $var;
echo $arr[0];  // Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 'ciao'

ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ скалярной ΠΈΠ»ΠΈ строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, пСрСмСнная
станСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°; имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ‘scalar’:

$var = 'ciao';
$obj = (object) $var;
echo $obj->scalar;  // Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 'ciao'

Kotlin. БыстроС вступлСниС

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎΠΏΠ»Π°Ρ‡Π΅Π½Π° кошками — всСмирно извСстными производитСлями котят.

Если ΡΡ‚Π°Ρ‚ΡŒΡ Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ хранится Π² Ρ„Π°ΠΉΠ»Π°Ρ… с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .kt (ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ .kot?).

Π’ языкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ «ΠΊΠΎΡˆΠ°Ρ‡ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ» — Ρ‡Π΅ΠΌ мСньшС ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΡˆΡŒ ΠΊΠΎΠ΄, Ρ‚Π΅ΠΌ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ останСтся Π½Π° сон.

НапримСр, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой Π² ΠΊΠΎΠ½Ρ†Π΅ выраТСния. Π’Π°ΠΊ поступаСт JavaScript ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ языки программирования.


// ΠΈ Ρ‚Π°ΠΊ сойдёт
val x = 1
val y = 2

Π’ Kotlin Π΅ΡΡ‚ΡŒ СдинствСнноС мСсто, Π³Π΄Π΅ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π° — Π² пСрСчислСнии enum

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ссли ΠΈΠ· контСкста понятно Π΅Ρ‘ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ 1 ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ пСрСмСнная являСтся Ρ‚ΠΈΠΏΠΎΠΌ Int.


Π£Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² студии ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш Ctrl+Shift+P

Kotlin Π½Π΅ Π΄Π΅Π»ΠΈΡ‚ Ρ‚ΠΈΠΏΡ‹ Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ ΠΈΡ… ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ. НапримСр, Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Int вмСсто int ΠΈ Integer.

МоТно сразу Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ println вмСсто Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ System.out.println. Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Kotlin Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя популярныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Java для быстрого доступа.

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π° с сСрвСра Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ URL.readText():


// Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² основном ΠΏΠΎΡ‚ΠΎΠΊΠ΅!
val address = "http://example.com"
val someText = URL(address).readText()

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ Java ΠΌΡ‹ сначала ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΅Ρ‘ имя. Π’ Kotlin Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ Ρ‚Π°ΠΊ. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово val ΠΈΠ»ΠΈ var, Π·Π°Ρ‚Π΅ΠΌ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΏΠΎ ТСланию ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.


val kitty = "Π’Π°ΡΡŒΠΊΠ°"
val age = 7
// Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Ρ‚ΠΈΠΏ
val weight: Int = 3
val catName: String = "ΠœΡƒΡ€Π·ΠΈΠΊ"

val actionBar = supportActionBar // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ActionBar Π² активности Π±Π΅Π· new

Если Π²Ρ‹ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‚ΠΎ Ρ‚ΠΈΠΏ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.


val age: Int
age = 7

Иногда Ρ‚ΠΈΠΏ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.


val a: Any = 12
val context: Context = activity

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово val (ΠΎΡ‚ слова value) ссылаСтся Π½Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎ соотвСтствуСт ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову final Π² Java.


// Java
final String name = "Π’Π°ΡΡŒΠΊΠ°";

// Kotlin
val name = "Π’Π°ΡΡŒΠΊΠ°"

А часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Java ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом const (ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ):


// Java
public static final String CAT_TALK = "meow";

// Kotlin
const val CAT_TALK = "meow"

Для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… измСняСмых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово var (ΠΎΡ‚ слова variable).

РСкомСндуСтся всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ val, Ссли это позволяСт Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈ этом Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ хотя ссылка val нСизмСняСма, сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ измСняСмым:


val cats = arrayListOf("Π’Π°ΡΡŒΠΊΠ°")
cats.add("Барсик")

ΠŸΡ€ΠΈ использовании var Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, это Π²Π°ΠΌ Π½Π΅ PHP.


var answer = 42
// Ρ‚Π°ΠΊ нСльзя
answer = "Π½Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π°"

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Π° Π² Ρ‡Ρ‘ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ val ΠΈ const? Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ const для константы Π½Π° этапС компиляции, Π° для val ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ нСизмСняСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° этапС Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ°.


const val catName = "ΠœΡƒΡ€Π·ΠΈΠΊ" // ΠΌΠΎΠΆΠ½ΠΎ
val catName = "ΠœΡƒΡ€Π·ΠΈΠΊ" // Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ

const val catName = getCompanyName() // нСльзя, Π½ΡƒΠΆΠ½ΠΎ сразу ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· вычислСний
val catName = getCompanyName() // Π° Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ

Когда ΠΈ Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ val ΠΈ const? Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.


// ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ класс
MyClass {
    companion object {    
        const val FILE_EXTENSION = ".png"    
        val FILENAME: String
        get() = "img_" + System.currentTimeMillis() + FILE_EXTENSION 
    }
}

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ класса ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ константой. А имя Ρ„Π°ΠΉΠ»Π° вычисляСтся Π½Π° основС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΅Π³ΠΎ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ константу.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово inline

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π² Kotlin.

ПсСвдоним для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ классов ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ псСвдоним.


import android.os.Bundle
import ru.alexanderklimov.cat.Bundle as CatBundle

fun getBundle() {
    val bundle1 = Bundle()
    val bundle2 = CatBundle()
}

typealias

ПсСвдоним Ρ‚ΠΈΠΏΠ° позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅. Если Π² вашСм ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ (Double) -> Double, β€” Π²Ρ‹
смоТСтС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ псСвдоним, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСсто этого Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΊΠΎΠ΄ Π»ΡƒΡ‡ΡˆΠ΅ читался. ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом typealias.


typealias DoubleConversion = (Double) -> Double

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ typealias ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° для Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ typealias CatArray = Array<Cat> позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‚ΠΈΠΏΡƒ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ CatArray вмСсто Array<Cat>.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ собствСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.


class CustomException(message:String): Exception(message)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΈΠ½ΡƒΡ‚ΡŒ созданноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² своём ΠΊΠΎΠ΄Π΅ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС.


throw CustomException("Threw custom exception")
Π Π΅ΠΊΠ»Π°ΠΌΠ°

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠšΡƒΡ€Ρ «Python. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅»

Π”Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡ… Ρ‚ΠΈΠΏΡ‹

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΌΡ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия Π½Π°Π΄ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΌΠΈ нас ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌΠΈ, ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠœΡ‹ мСняСм ΠΈΡ… свойства, надСляСм Π½ΠΎΠ²Ρ‹ΠΌΠΈ функциями. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с этим ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ. Пока Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ΠΌ Π΄ΠΎ уровня ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ. Часто ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с числами ΠΈ строками. Π’Π°ΠΊ Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с числами, выполняя Π½Π°Π΄ Π½ΠΈΠΌΠΈ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ слоТСния выполняла ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ числа Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π»ΠΎ ΠΎΠ΄Π½ΠΎ число Π² количСство Ρ€Π°Π·, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ.

Числа Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ: Ρ†Π΅Π»Ρ‹ΠΌΠΈ, вСщСствСнными, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ.

ΠŸΡ€ΠΈ знакомствС с языком программирования Python ΠΌΡ‹ столкнСмся с трСмя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:

  • Ρ†Π΅Π»Ρ‹Π΅ числа (Ρ‚ΠΈΠΏ int) – ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа, Π° Ρ‚Π°ΠΊΠΆΠ΅ 0 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 4, 687, -45, 0).

  • числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (Ρ‚ΠΈΠΏ float) – Π΄Ρ€ΠΎΠ±Π½Ρ‹Π΅, ΠΎΠ½ΠΈ ΠΆΠ΅ вСщСствСнныС, числа (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1.45, -3.789654, 0.00453). ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: для раздСлСния Ρ†Π΅Π»ΠΎΠΉ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ частСй здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠ°, Π° Π½Π΅ запятая.

  • строки (Ρ‚ΠΈΠΏ str) β€” Π½Π°Π±ΠΎΡ€ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «ball», «What is your name?», ‘dkfjUUv’, ‘6589’). ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² Python ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ; ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ символ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… Ρ‚Π°ΠΊΠΆΠ΅ являСтся строкой, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ символьного Ρ‚ΠΈΠΏΠ° Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ Π½Π΅Ρ‚.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ – это Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ дСйствий Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ. Π‘Π°ΠΌΠΎ дСйствиС выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ – ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт. Если Π±Ρ‹ Π²Ρ‹ выполняли ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ постройки стола, Ρ‚ΠΎ вашими ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ Π±Ρ‹Π»ΠΈ Π±Ρ‹ доска ΠΈ гвоздь, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ – ΠΌΠΎΠ»ΠΎΡ‚ΠΎΠΊ.

Π’Π°ΠΊ Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ символ плюса являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТСния ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ числам. Π’ случаС строк этот ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ соСдинСния.

>>> 10.25 + 98.36
108.61
>>> 'Hello' + 'World'
'HelloWorld'

Π—Π΄Π΅ΡΡŒ слСдуСт для сСбя ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, зависит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎ, Π½ΠΎ ΠΈ ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚. ΠœΠΎΠ»ΠΎΡ‚ΠΎΠΊ Π² случаС нападСния Π½Π° вас ΠΊΡ€ΠΎΠΊΠΎΠ΄ΠΈΠ»Π° пСрСстанСт ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ инструмСнта. Однако Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π½Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹. НапримСр, Π·Π½Π°ΠΊ плюса Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ, Ссли ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ, с ΠΎΠ΄Π½ΠΎΠΉ стороны, число, Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ – строка.

>>> 1 + 'a'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 
'int' and 'str'

Π—Π΄Π΅ΡΡŒ Π² строкС TypeError: unsupported operand type(s) for +: 'int' and 'str' ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ сообщаСт, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка Ρ‚ΠΈΠΏΠ° – Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ для Ρ‚ΠΈΠΏΠΎΠ² int ΠΈ str.

ИзмСнСниС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ всС-Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Ссли ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ число 1 Π² строку «1». Для измСнСния ΠΎΠ΄Π½ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π² языкС Python прСдусмотрСн ряд встроСнных Π² Π½Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ…). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΠΏΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с трСмя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ (int, float ΠΈ str), рассмотрим Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ – int(), float(), str().

>>> str(1) + 'a'
'1a'
>>> int('3') + 4
7
>>> float('3.2') + int('2')
5.2
>>> str(4) + str(1.2)
'41.2'

Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ помСщаСтся Π² ΠΈΡ… скобки соотвСтствСнно Π² Ρ†Π΅Π»ΠΎΠ΅ число, вСщСствСнноС число ΠΈΠ»ΠΈ строку. Однако ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ всС:

>>> int('hi')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with 
base 10: 'hi'

Π—Π΄Π΅ΡΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка значСния (ValueError), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π»ΠΈΡ‚Π΅Ρ€Π°Π» (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС строка с Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹ΠΌΠΈ символами), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСльзя ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ числу с основаниСм 10. Однако функция int Π½Π΅ такая простая:

>>> int('101', 2)
5
>>> int('F', 16)
15

Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСмах счислСния, Ρ‚ΠΎ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ здСсь ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΅Ρ‰Π΅ Π½Π° ΠΎΠ΄Π½ΠΎ. Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ значСниями, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ. Π­Ρ‚ΠΈ Ρ‚Ρ€ΠΈ понятия («Π΄Π°Π½Π½Ρ‹Π΅», «Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», «Π»ΠΈΡ‚Π΅Ρ€Π°Π»») Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, Π½ΠΎ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ синонимы. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, мСста ΠΈΡ… употрСблСния, Π½Π°Π΄ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»ΡƒΠ±ΠΆΠ΅.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π”Π°Π½Π½Ρ‹Π΅ хранятся Π² ячСйках памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Когда ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ число, ΠΎΠ½ΠΎ помСщаСтся Π² ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ячСйку памяти. Но ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΡƒΠ΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ? Как впослСдствии ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ этим Π΄Π°Π½Π½Ρ‹ΠΌΠΈ? НуТно ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку.

РаньшС, ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° машинном языкС, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ячСйкам памяти осущСствляли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ указания ΠΈΡ… рСгистров, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ сообщали, ΠΊΡƒΠ΄Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΈΡ… Π²Π·ΡΡ‚ΡŒ. Однако с появлСниСм ассСмблСров ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ стали ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ словСсныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ ΠΊΡƒΠ΄Π° ΡƒΠ΄ΠΎΠ±Π½Π΅ΠΉ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ языка программирования ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Пока достаточно Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π² дальнСйшСм ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ этому ΠΈΠΌΠ΅Π½ΠΈ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π‘Π»ΠΎΠ²ΠΎ «ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ» ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, ΠΎΠ½Π° нСпостоянна. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ это Π² дальнСйшСм, ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связана сначала с ΠΎΠ΄Π½ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠΌ – с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, ΠΎΠ½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Ρ‡ΠΈΠ²Π°.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° языкС Python, ΠΊΠ°ΠΊ ΠΈ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ устанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π½Π°ΠΊΠ° =. Вакая опСрация называСтся присваиваниС (Ρ‚Π°ΠΊΠΆΠ΅ говорят «ΠΏΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅»). НапримСр, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ sq = 4 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой число 4, находящССся Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области памяти, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ссылаСтся пСрСмСнная sq, ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ этому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ слСдуСт ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ sq.

ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ. Однако Π΅ΡΡ‚ΡŒ нСсколько ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» ΠΈΡ… написания:

  1. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ осмыслСнныС ΠΈΠΌΠ΅Π½Π°, говорящиС ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ.

  2. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ языка (Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами).

  3. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ»ΠΈ символа подчСркивания (_), Π½ΠΎ Π½Π΅ с Ρ†ΠΈΡ„Ρ€Ρ‹.

  4. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ссылаСтся пСрСмСнная, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, достаточно Π΅Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ имя ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Enter.

Π’ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ слоТный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅:

>>> apples = 100
>>> eat_day = 5
>>> day = 7
>>> apples = apples - eat_day * day
>>> apples
65

Π—Π΄Π΅ΡΡŒ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: apples, eat_day ΠΈ day. КаТдой ΠΈΠ· Π½ΠΈΡ… присваиваСтся своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ apples = apples - eat_day * day слоТноС. Π‘Π½Π°Ρ‡Π°Π»Π° выполняСтся ΠΏΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, стоящСС справа ΠΎΡ‚ Π·Π½Π°ΠΊΠ° равСнства. ПослС этого Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ apples, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π΅Π΅ староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (100) тСряСтся. Π’ ΠΏΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ apples - eat_day * day вмСсто ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° самом Π΄Π΅Π»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΡ… значСния, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ числа 100, 5 ΠΈ 7.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π°

  1. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ var_int присвойтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10, var_float — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8.4, var_str — «No».

  2. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ var_int, ΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ Π² 3.5 Ρ€Π°Π·Π°. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ свяТитС с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ var_big.

  3. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ var_float, ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ² Π΅Π³ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ свяТитС с Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

  4. Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ var_int Π½Π° var_float, Π° Π·Π°Ρ‚Π΅ΠΌ var_big Π½Π° var_float. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ привязывайтС Π½ΠΈ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ.

  5. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ var_str Π½Π° «NoNoYesYesYes». ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ (+) ΠΈ повторСния строки (*).

  6. Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ значСния всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ Π² android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ pdf-вСрсии курса

FALSE, NULL ΠΈ пустыС значСния — ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условий ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌΠΈ

НСбольшоС описаниС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ выполнСния условий Π½Π° PHP.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π’Π°ΠΌ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условий Π½Π° PHP для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

FALSE Π² If-выраТСниях

Π’ соотвСтствии с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ PHP ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния Ρ€Π°Π²Π½Ρ‹ FALSE послС привСдСния Π² Ρ‚ΠΈΠΏ boolean:

  • само булСвскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FALSE
  • integer 0
  • float 0.0
  • пустая строка (string) («») ΠΈ строка «0».
  • пустой массив (array) – array().
  • an object with zero member variables (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² PHP 4, Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π΅ рассматриваСтся)
  • ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ нСустановлСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅)
  • SimpleXML objects (Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π΅ рассматриваСтся)

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ссли Ρ‚Π°ΠΊΠΈΠ΅ значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² условиС:

if (…) 
  echo "1"; 
else 
  echo "0";

Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° строка «0».

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ установлСно (unset), Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. Напомним, ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² условии ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ, написав ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ @.

НапримСр:

if (@$undefVar)  {
  …}

Но ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ @ стоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаях, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… подходящих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π΅Ρ‚. Π‘ΠΌ. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ isset().

Ѐункция is_null() ΠΈ языковыС конструкции isset() ΠΈ empty()

is_null() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ TRUE Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ присвоСно Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния ΠΈΠ»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL.

isset() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Π΅ Π±ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния Π² сравнСнии с is_null().

Если ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ is_null() Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«Undefined variableΒ», Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ isset(), которая Π½Π΅ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

Напомним, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ unset(). Π’Π°ΠΊΠΆΠ΅ с этой Ρ†Π΅Π»ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ компилятора ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ чтСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с константами Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ defined().

Π‘ empty() всС просто – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ TRUE для истинных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, FALSE – для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² соотвСтствии со списком Π²Ρ‹ΡˆΠ΅, взятым ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ΠšΡΡ‚Π°Ρ‚ΠΈ, для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² empty() Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ константу компилятор Π²Ρ‹Π΄Π°Π΅Ρ‚ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ массивов

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами всС Π»ΠΎΠΆΠ½Ρ‹Π΅ значСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния индСксов пустой строки (») ΠΈ NULL β€” для этих Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто Π² памяти.

Π’Π°ΠΊΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пустого массива array(), ΠΊΠ°ΠΊ Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ массива, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ индСксом массива – компилятор Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«Illegal offset typeΒ» ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ‚Π°ΠΊΠΎΠΌΡƒ индСксу, Π½Π΅ устанавливаСтся.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ индСксам пустой строки ΠΈ NULL соотвСтствовали Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π² массивС, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ОпишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

function index($var) {
  if ($var === NULL) return 'NULL';
  return 'V' . $var;
}

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈ установкС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы для пустой строки ΠΈ значСния NULL, Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ индСксы:

$arr[index('')]='value for empty string ';
$arr[index(NULL)]='value for NULL';

Π˜Π½Π΄Π΅ΠΊΡΡ‹ массивов β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅ΠΌΠ°. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ лишь ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с цСлочислСнным индСксом $arr[555] совпадаСт со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ строковыму индСксу $arr[‘555’] Π² массивС.

Π’Π°ΠΊΠΈΠ΅ особСнности ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго связаны с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ индСксы массивов Π»ΠΈΠ±ΠΎ Ρ†Π΅Π»Ρ‹Π΅, Π»ΠΈΠ±ΠΎ строки. Π‘ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ информация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π° Π² описании Ρ‚ΠΈΠΏΠ° массива Π² руководствС php.

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠ΅ прСдставлСниС

Расмотрим строковоС прСдставлСниС Π»ΠΎΠΆΠ½Ρ‹Ρ… констант.

НапримСр ΠΏΡ€ΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ значСния ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π‘Ρ‚Ρ€ΠΎΠΊΠ°
FALSE(пустая строка)
00
0.00
«»(пустая строка)
Β«0Β»0
array()Array
NULL(пустая строка)
@$undef(пустая строка)

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ‚Π΅ΠΌΠ° прСобразования Π² строки описана Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС Π² ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅ Converting to string.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ сравнСния.

ВсС Π»ΠΎΠΆΠ½Ρ‹Π΅ значСния, ΠΊΠ°ΠΊ ΠΈ оТидалось, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ истину ΠΏΡ€ΠΈ сравнСнии со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ FALSE ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° «==».

Но Π½Π΅ слСдуСт здСсь Ρ€Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ сравнСнии Π»ΠΎΠΆΠ½Ρ‹Ρ… строковых констант ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ сравнСния Π»ΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (плюсом ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ элСмСнты Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ сравнСнии с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° «!=» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ истинноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

!=FALSE00.0«»Β«0Β»array()NULL@$undef
FALSE
0+
0.0+
«»++
Β«0Β»++++
array()++++
NULL+
@$undef+

$undef –пСрСмСнная, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π»ΠΎΡΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Из Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приятныС Π²Ρ‹Π²ΠΎΠ΄Ρ‹:

1. Если ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки, Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡ… ΠΌΠΎΠΆΠ΅ΠΌ спокойно ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ «» (пустая строка) Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° «0».

2. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π²Π½Ρ‹ строкам, Ρ†Π΅Π»Ρ‹ΠΌ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ числам.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΈΠΏ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π»ΠΎΠΆΠ½Ρ‹Ρ… констант Ρ€Π°Π·Π½Ρ‹ΠΉ, Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² === ΠΈ !==.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для всСх ΠΏΠ°Ρ€ Π»ΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ лишь для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π΅ присвоСно Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с NULL Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === позволяСт Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ всС Π»ΠΎΠΆΠ½Ρ‹Π΅ значСния, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с NULL-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π»ΠΎΡΡŒ.

Π’Π°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get_defined_vars().

Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π±Ρ‹Π»ΠΎ Π»ΠΈ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $var, Ρ‚ΠΎ для этого ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄:

if (array_key_exists('var', get_defined_vars()) ) {
  echo "var is defined"; // $var is assigned NULL
} else {
  echo "var is NOT defined"; // $var is not defined or unset($var) was called
}

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

ВсСгда Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² PHP Π΄Π²Π° Π»ΠΎΠΆΠ½Ρ‹Ρ… значСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ€Π°Π²Π½Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Ρ€Π°Π·Π½Ρ‹Π΅, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈ сравнСнии. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ === ΠΈ !==.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами, Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ конвСртирования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ индСксы. ПослС этого ΠΊ элСмСнтам массива ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ².

Π£Ρ€ΠΎΠΊ 16. PHP — POST & GET

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотри ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΈ страницами. Π’Π°ΠΊΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ POST ΠΈ GET. О ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, это Π½ΡƒΠΆΠ½ΠΎ для связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ. НапримСр ΠΌΡ‹ заполняСм ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎ поля Π½Π° страницС ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ страницу для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄ GET Π² PHP

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ GET. Π­Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡ… значСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ прямо Ρ‡Π΅Ρ€Π΅Π· адрСс. БСйчас Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ всС ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сайтов ΠΈ Ρ„ΠΎΡ€ΡƒΠΌΠΎΠ².
К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΅ΡΡ‚ΡŒ Ρƒ нас html страничка Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°:


<html>
<head>
<title>Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Get</title>
</head>
<body>
<a href=https://myblaze.ru/index.php?name=Sergey&age=22>ссылка</a>
</body>
</html>

Π’ΠΈΠ΄ΠΈΡ‚Π΅ ссылку? Она слоТная ΠΈ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… частСй. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ всС ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌ:
https://myblaze.ru β€” адрСс Π΄ΠΎΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚, хост.
index.php β€” страница Π½Π° php, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запрос.
? β€” символ раздСлСния ΠΌΠ΅ΠΆΠ΄Ρƒ адрСсом ΠΈ Π±Π»ΠΎΠΊΠΎΠΌ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.
Π”Π°Π»Π΅Π΅ ΠΈΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡ… значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ символом &.
name=Sergey β€” пСрСмСнная name ΠΈ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Sergey.
age=22 β€” Ρ‚ΠΎ ΠΆΠ΅ самоС, пСрСмСнная age, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 22.

ВсС Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим ΠΊΠ°ΠΊ это обрабатываСтся Π² php, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GET.
Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° index.php, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈ Π΅ΠΉ:


<?php

 if (!empty($_GET["name"])&&!empty($_GET["age"])) 
 { echo " ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅: имя - ".$_GET["name"].", возраст - ".$_GET["age"]." Π»Π΅Ρ‚";} 
 else { echo "ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ дошли. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ всС Π΅Ρ‰Π΅ Ρ€Π°Π·."; }

?>

Для Π½Π°Ρ‡Π°Π»Π° совСт: ВБЕГДА провСряйтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Π½Π° пустоту, Π½Π° соотвСтствиС допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ всС пСрСдаСтся Ρ‡Π΅Ρ€Π΅Π· Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ строку, Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ сайту. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ самому ΠΊΠΎΠ΄Ρƒ: ΠΌΡ‹, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ name ΠΈ age Π½Π° пустоту ΠΈ, Ссли ΠΎΠ½ΠΈ Π½Π΅ пустыС, Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π»ΠΈ ΠΈΡ…, Π° Ссли пустыС, Ρ‚ΠΎ просто сообщили ΠΎΠ± этом.
ВсС просто, ΡΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ? НапримСр Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ html страницу ΠΈ Π² мСнюшкС ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ссылки Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π° Π² index.php ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² зависимости ΠΎΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ значСния Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ страницу. Ну ΠΎΠ± этом ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅, Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎ созданиС сайта Π½Π° php с нуля. Π§Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° RSS.

ΠœΠ΅Ρ‚ΠΎΠ΄ POST Π² PHP

Для дСмонстрации Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π°ΠΌ понадобится Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС, Ρ‡Π΅ΠΌ простая строчка с адрСсом πŸ™‚ НуТно Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ html страницу с Ρ„ΠΎΡ€ΠΌΠΎΠΉ для заполнСния, Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ, я ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для вас:


<html>
<head>
<title>Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Post</title>
</head>
<body>

<form method="post" action="index.php">ЗаполняСм поля для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ:<br><br>
 Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π’Π°ΡˆΠ΅ имя: <input name="user_name" type="text" maxlength="20" size="25" value="" />
<br><br> Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π’Π°Ρˆ возраст: <input name="age" type="text" maxlength="2" size="3" value="" />
<br><br> <input type=submit value="ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ"></form>
</body>
</html>

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ создали html страничку с простой Ρ„ΠΎΡ€ΠΌΠΎΠΉ. Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄ POST ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ΅.
ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΠΎΡ€ΠΌΡ‹ β€” Β«methodΒ», ΠΎΠ½ опрСдСляСт ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, это Π»ΠΈΠ±ΠΎ GET, Π»ΠΈΠ±ΠΎ POST. ΠŸΡ€ΠΈ этом, Ссли установлСн GET, Ρ‚ΠΎ всС ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ (Π² Π²ΠΈΠ΄Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ссылкС, ΠΊΠ°ΠΊ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΡ€ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ GET. Если ΠΆΠ΅ установлСн POST, Ρ‚ΠΎ всС названия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ значСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ запрос Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΊ Π²Π΅Π±-сСрвСру. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² адрСсной строкС ΠΈΡ… Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях это ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ POST бСзопаснСС, ΠΎΠ½ΠΎ ΠΈ понятно, вСдь ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΈΡ… значСниями ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Π°ΠΊ просто ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, хотя Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΠΎΡ€ΠΌΡ‹ β€” Β«actionΒ». Π­Ρ‚ΠΎ ΠΏΡƒΡ‚ΡŒ ΠΈ имя Ρ„Π°ΠΉΠ»Π° скрипта, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅. Π’ нашСм случаС это index.php. Π­Ρ‚ΠΎΡ‚ ΠΏΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊ: action=Β«https://my_site.ru/index.phpΒ». Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«actionΒ», Ρ‚ΠΎ вся информация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π³Π»Π°Π²Π½ΠΎΠΌΡƒ скрипту, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ индСксной страницС index.php вашСго сайта, Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· нашСй Ρ„ΠΎΡ€ΠΌΡ‹. Π Π°Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈ ΠΌΡ‹ Π² index.php, Π·Π½Π°Ρ‡ΠΈΡ‚ Π½ΠΈΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π½Π½ΠΎ этой страницы:


<?php

 if (!empty($_POST["user_name"])&&!empty($_POST["age"]))
 {
 echo "ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅:<br>";
 echo "имя - ";
 echo $_POST["user_name"];
 echo "<br>возраст - ";
 echo $_POST["age"];
 echo " Π»Π΅Ρ‚";
 }
 else
 {
 echo "ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ дошли. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ всС Π΅Ρ‰Π΅ Ρ€Π°Π·.";
 }

?>

НС Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π° пустоту ΠΈ допустимыС значСния. Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ наши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ user_name ΠΈ age? А Π²Ρ‹ посмотритС Π½Π° поля Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ создавали Π²Ρ‹ΡˆΠ΅. Π’ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΌ input name=Β«user_nameΒ» type=Β«textΒ» ? Π’ΠΎΡ‚ здСсь ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ name ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого поля. Π’ΠΎ ΠΆΠ΅ самоС ΠΈ с age. НадСюсь понятно. Ну Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π΅Π΅ значСния Ρ‡Π΅Ρ€Π΅Π· POST ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ отличаСтся ΠΎΡ‚ GET, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ рассмотрСли Π²Ρ‹ΡˆΠ΅.

Ну Π²ΠΎΡ‚, ΡƒΡ€ΠΎΠΊ получился большой, Π½ΠΎ Π·Π°Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…, вСдь ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΈ страницами это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ€Π°Π΄ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ PHP.

← Π¦ΠΈΠΊΠ» Do while | Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ | htmlentities β†’

Новый псСвдотип Β«ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉΒ» — PHP 8.0 β€’ PHP.Watch

ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ — это псСвдотип, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² PHP 8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° / Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° / свойства ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любого Ρ‚ΠΈΠΏΠ°. ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС скалярныС Ρ‚ΠΈΠΏΡ‹ Π² PHP, null , всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈ Π΄Π°ΠΆΠ΅ рСсурсов .

ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ эквивалСнтно Ρ‚ΠΈΠΏΡƒ соСдинСния:

  строка | int | float | bool | null | array | object | callable | resource  

Π‘ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ , Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния ΠΈ свойства класса ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ любого Ρ‚ΠΈΠΏΠ°.

  class Example {
    общСдоступный ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ $ exampleProperty;
    публичная функция foo (смСшанная $ foo): смСшанная {}
}  

ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ прСдставляСт любой Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ PHP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΈ поэтому Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ привСсти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊ ΡΠΌΠ΅ΡˆΠ°Π½Π½ΠΎΠΌΡƒ , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это просто Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла.

  $ foo = (ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ) $ bar;  

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ сущСствуСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ is_mixed () .

gettype () ΠΈ get_debug_type () Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ прСдставляСт всСх Ρ‚ΠΈΠΏΠΎΠ² , ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² сочСтании с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ:

  функция (смСшанная | FooClass $ bar): int | mixed {}  

Оба Ρ‚ΠΈΠΏΠ° объСдинСния, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅, нСдопустимы ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибкС:

  НСустранимая ошибка: ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π² ... on line ...  

Когда функция , ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠ»ΠΈ свойство класса Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ явного объявлСнного Ρ‚ΠΈΠΏΠ°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдполагаСтся, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ .

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ добавляСтС смСшанного Ρ‚ΠΈΠΏΠ° ΠΊΠΎ всСму ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ; Π’ PHP 8 Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ объСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ подходят, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ объСдинСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ.

Для Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° отсутствиС явного Ρ‚ΠΈΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ€Π°Π²Π½ΠΎ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ | Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ .

Однако ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ mixed | void ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ mixed Π½Π΅ допускаСтся Π² Ρ‚ΠΈΠΏΠ΅ объСдинСния.

Когда ΠΌΠ΅Ρ‚ΠΎΠ΄ класса, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ свойства замСщаСтся подклассом, ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ замСщСния Лискова.

ΠšΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ:

ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π’ΠΈΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Β«Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹Β» Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ классС ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСйса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ выполняСт ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ интСрфСйса / Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ с Ρ‚ΠΈΠΏΠΎΠΌ Union, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ большС Ρ‚ΠΈΠΏΠΎΠ², ΠΈΠ»ΠΈ имя класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ класса.

Когда Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° объявлСн ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ , это практичСски ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ , всС Ρ‚ΠΈΠΏΡ‹ , с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ PHP. Если Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, всСгда Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π² общСдоступном API, всС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.

ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Ρ†ΠΈΡ:

ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°

Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса объявил Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ , Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классам Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚Π΅ΠΌ самым Π½Π°Ρ€ΡƒΡˆΠ°Ρ LSP.

  класс А {
    публичная функция foo (): ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ {}
}
class B Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ A {
    публичная функция foo (): void {}
}  

Π’Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ошибкС:

  НСустранимая ошибка: объявлСниС B :: foo (): void Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ совмСстимо с A :: foo (): mixed  

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ void type .Если Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π½Π΅ объявлСн явно, прСдполагаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π²Π΅Π½ mixed | void .

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ всС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ:

  класс А {
    публичная функция foo () {}
    панСль ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ () {}
    публичная функция baz (): смСшанная {}
}
class B Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ A {
    публичная функция foo (): ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ {}
    панСль ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (): void {}
    публичная функция baz (): строка {}
}  
  • B :: foo : Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ: суТаСт ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ | void Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ A :: foo .
  • B :: bar : Allowed: суТаСт ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ | Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния A :: bar .
  • B :: baz : Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ: суТаСт ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ .

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ:

ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² собствСнности

Если Ρ‚ΠΈΠΏ свойства объявлСн ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ , этот Ρ‚ΠΈΠΏ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π²ΠΎΠΎΠ±Ρ‰Π΅.

PHP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ псСвдо-Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ void , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Π΅Ρ€Π½Π΅Ρ‚.Π­Ρ‚ΠΎ эквивалСнтно ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ заявлСния return ΠΈΠ»ΠΈ return; Π±Π΅Π· указания явного значСния.

void Π’ΠΈΠΏ ΠΈ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π² объСдинСнии. Π”Π°Π»Π΅Π΅ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ .

НСльзя ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ NULL .

ВсС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ объявлСния Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ:

  function foo (ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ | null $ foo) {}
функция foo (? ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ $ foo) {}
функция foo ($ foo): ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ | null {}
функция foo ($ foo):? ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ {}  

ВсС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ объявлСния Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

  НСустранимая ошибка: ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π²... Π½Π° Π»ΠΈΠ½ΠΈΠΈ ...  

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ использованиС

МногиС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PHP ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ смСшанного Ρ‚ΠΈΠΏΠ° . Однако для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ часто Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ объСдинСния.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ var_dump ΠΈΠ»ΠΈ get_debug_type () , ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ свои ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ любого Ρ‚ΠΈΠΏΠ° ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ.

Если Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ свойство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° / Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния / класса ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ , ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΠ°ΠΊ рСсурс ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Β«ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π°, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Ρ‚ΠΈΠΏΠΎΠΌ объСдинСния, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ string | int | float | bool | null | object | array .


ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ

ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ мягко Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½, начиная с PHP 7. Π”ΠΎ PHP 8, тСхничСски Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ , ΠΈ это Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ошибок, ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ PHPDoc ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π² качСствС объявлСния Ρ‚ΠΈΠΏΠ°, поэтому маловСроятно, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ самая дикая кодовая Π±Π°Π·Π° ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ .

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π² PHP 8 ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ошибкС:

  НСустранимая ошибка: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слово Β«ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉΒ» Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ класса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π² ... Π² строкС ...  

ΠŸΠΎΠ»ΠΈΡ„ΠΈΠ»Π»

НСвозмоТно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ»Π»ΠΈΠ½Π³ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ‚ΠΈΠΏ. Если Π² любом мСстС ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ , ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ PHP 8+.


БвязанныС измСнСния


РСализация обсуТдСния RFC

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… PHP

PHP Π»Π΅Π³Ρ‡Π΅ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Java ΠΈ ASP.NET.PHP ΠΈΠΌΠ΅Π΅Ρ‚ довольно простой для синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ понятный для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° синтаксис. Π’ этом руководствС ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ программирования PHP, ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² PHP

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ основным ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ языка программирования. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… относится ΠΊ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ пСрСмСнная.

PHP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ восСмь ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²:

Π§Π΅Ρ‚Ρ‹Ρ€Π΅ скалярных Ρ‚ΠΈΠΏΠ°:

  1. Boolean

Boolean Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π»ΠΈ прСдставлСны Π² PHP 4.ЛогичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ истинным ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

  1. Ρ†Π΅Π»ΠΎΠ΅

Π¦Π΅Π»Ρ‹Π΅ числа ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ записаны Π² дСсятичной, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ ΠΈ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния.

  1. float

Числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Ρ‚Π°ΠΊΠΆΠ΅ извСстны ΠΊΠ°ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа.

  1. строка

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов Π² PHP.

Π”Π²Π° составных Ρ‚ΠΈΠΏΠ°:

  1. массив

Массив Π² PHP — это Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡ / Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

  1. ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‚Ρ€ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°:

  1. рСсурс

РСсурсы — это особый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт рСсурс PHP, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Ρ„Π°ΠΉΠ», соСдинСниС с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… .

  1. NULL

NULL — это Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL.

PHP — это слабо связанный язык, поэтому Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….PHP опрСдСляСт Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ, присвоСнным ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. PHP нСявно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. PHP Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ называСтся явным ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ². Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½ΠΈΠΆΠ΅ ΠΌΡ‹ объяснили ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ сначала обсудим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² PHP.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пСрСмСнная Π² PHP

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ — это основная Ρ‡Π°ΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π°, которая Π΄Π΅Π»Π°Π΅Ρ‚ вашС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π³ΠΈΠ±ΠΊΠΈΠΌ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ тСкстовыС строки, числа ΠΈΠ»ΠΈ массивы.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ символом $, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² PHP. . ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ — это имя значСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ врСмя выполнСния. ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСт Π΅Π΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная доступна для всСх скриптов Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для сцСнария, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ прСдоставлСния сохранСнных Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ³Π΄Π° это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π° ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² PHP довольно просто. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π½Π°ΠΊ равСнства (=).

ΠŸΡ€Π°Π²ΠΈΠ»Π° имСнования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

  1. ВсС ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ со Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π»Π°Ρ€Π°.

  1. ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ $ var_name отличаСтся ΠΎΡ‚ $ VAR_NAME.

$ var_name! = $ VAR_NAME

  1. ВсС ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹ послС Π΄Ρ€ΡƒΠ³ΠΈΡ… символов

e.Π³Ρ€Π°ΠΌΠΌ. $ var_name1. $ 1var_name Π½Π΅ являСтся допустимым ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

  1. ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²

$ var name Π½Π΅ являСтся допустимым ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ вмСсто ΠΏΡ€ΠΎΠ±Π΅Π»Π°

, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $ var_name.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим, ΠΊΠ°ΠΊ PHP опрСдСляСт Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² зависимости ΠΎΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² прСдоставлСнных Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

$ str = «Hello World!»

$ var = 3.14;

echo ‘$ var:’ .is_double ($ a). «
«;

echo ‘$ str. «
«;

?>

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Для выполнСния арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² — это ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ значСния Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

$ var1 = 3.14;

$ var2 = 5;

$ var1_cast = (int) $ var1;

echo $ var1 + $ var2;

?>

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² PHP выполняСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. PHP Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π²Π°ΠΌ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ извСстно ΠΊΠ°ΠΊ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Ѐункция var_dump ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовался Π²Ρ‹ΡˆΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ var_dump.

$ var = 3.14;

var_dump ($ var);

?>

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ константа?

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° — это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (пСрСмСнная) для простого значСния. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΎ врСмя выполнСния сцСнария. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ PI 3.14, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ константу для хранСния Π΅Π΅ значСния.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ константы для присвоСния значСния 3,14 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ PI

define (‘PI’, 3.14); // создаСт константу со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 3.14

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ PI ΠΊΠ°ΠΊ 3.14 ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° константу, Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрирована ошибка. ДопустимоС имя константы начинаСтся с Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ»ΠΈ символа подчСркивания (Π±Π΅Π· Π·Π½Π°ΠΊΠ° $ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ константы).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, константы автоматичСски Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ для всСго сцСнария.

Π•ΡΡ‚ΡŒ Π΄Π²Π΅ встроСнныС константы, ИБВИНА ΠΈ Π›ΠžΠ–Π¬ (Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… логичСских значСния.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹?

PHP ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ нСсколько Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΈ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ здСсь

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для выполнСния арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с числовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со строковыми значСниями. PHP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

ΠžΠŸΠ•Π ΠΠ’ΠžΠ  ΠžΠŸΠ˜Π‘ΠΠΠ˜Π• ΠŸΠ Π˜ΠœΠ•Π  РЕЗУЛЬВАВ
+ ΠŸΡ€ΠΈΠΌ. Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ x = 2,5-x 3
* Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ x = 4, x * 5 20
/ Π”Π΅Π»Π΅Π½ΠΈΠ΅ 15 / 5,5 / 2 32.5
% ΠœΠΎΠ΄ΡƒΠ»ΡŒ упругости (остаток ΠΎΡ‚ дСлСния) 5% 2,10% 8 12
++ ΠŸΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ x = 5, x ++ 6

УмСньшСниС x = 5, x– 4

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для присвоСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСстС с арифмСтичСскими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

Имя ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ОписаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

902 x = y

ΠžΠŸΠ•Π ΠΠ’ΠžΠ  ΠŸΠ Π˜ΠœΠ•Π  ВАК Π–Π•, КАК
= x = y 902 x = y x + = y x = x + y
— = x- = y x = xy
* = x * = y x = x * y
/ = x / = y x = x / y
.= x. = Y x = xy
% = X% = y x = x% y

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для сравнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

! 5! = 8 return true

ΠžΠŸΠ•Π ΠΠ’ΠžΠ  ΠžΠŸΠ˜Π‘ΠΠΠ˜Π• ΠŸΠ Π˜ΠœΠ•Π 
== Ρ€Π°Π²Π½ΠΎ 5 == 8 return false
<> Π½Π΅ Ρ€Π°Π²Π½ΠΎ 5 <> 8 return true
> большС 5> 8 return false
< is мСньшС 5 <8 return true
> = большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 5> = 8 return false
<= мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 5 <= 8 return true

ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с логичСскими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ любоС число большС ΠΈΠ»ΠΈ мСньшС нуля (0) оцСниваСтся ΠΊΠ°ΠΊ истинноС.Ноль (0) оцСниваСтся ΠΊΠ°ΠΊ лоТь.

ΠžΠŸΠ•Π ΠΠ’ΠžΠ  ΠžΠŸΠ˜Π‘ΠΠΠ˜Π• ΠŸΠ Π˜ΠœΠ•Π 
&& ΠΈ x = 6, y = 3 (x <1010 & y409) || ΠΈΠ»ΠΈ x = 6, y = 3 (x == 5 || y == 5) Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ false
! not x = 6, y = 3! (X == y) return true

Π’ΠΎΡ‚ ΠΈ всС! НачнитС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ своим Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ списком!

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΈ я Π±ΡƒΠ΄Ρƒ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π°ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ.

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² PHP

Π’ этом постС я объясню Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с PHP.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список Ρ‚ΠΈΠΏΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ PHP:

  • Ѐункция, опрСдСляСмая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ
  • Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния
  • Ѐункция ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
  • ВнутрСнняя (встроСнная) функция
  • Анонимная функция

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ:

Ѐункция, опрСдСляСмая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° с использованиСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ синтаксиса:

1
2
3
4
5
6

Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ панСль ($ arg1, $ arg2,…,)
{
echo «функция ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΒ»;
}
? ->

ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π² PHP.ДопустимоС имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ начинаСтся с Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ»ΠΈ символа подчСркивания, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт любоС количСство Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€ ΠΈΠ»ΠΈ символов подчСркивания. Π’ качСствС рСгулярного выраТСния это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: [a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff] *.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° имСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ здСсь.

Ѐункция Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π΄ΠΎ обращСния ΠΊ Π½Π΅ΠΉ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случаСв, ΠΊΠΎΠ³Π΄Π° функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° условно.

Если функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° условным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8

24

$ makefoo = ΠΏΡ€Π°Π²Π΄Π°;
/ * ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ foo () ΠΎΡ‚ΡΡŽΠ΄Π°
, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт,
, Π½ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ bar () * /

bar ();
if ($ makefoo)
{
function foo ()
{
echo «Π― Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽ, ΠΏΠΎΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ достигнСт мСня.\ n «;
}
}

/ * Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ бСзопасно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ foo ()
, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ $ makefoo оцСниваСтся ΠΊΠ°ΠΊ истина * /

if ($ makefoo) foo ();
function bar ()
{
echo» Π― ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽ сразу послС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. \ N «;
}
? ->

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния

Π­Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция, Π½ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ значСния Π½Π° основС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅:

1
2
3
4
5
6
7

ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ($ len)
{
return 4 * $ len;
}
ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ (4);
? ->

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ функция

PHP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, PHP Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ любая пСрСмСнная, оцСниваСмая, ΠΈ попытаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Ρ‚Π°Π±Π»ΠΈΡ† Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ‚. Π”.

1
2
3
4
5
6
7
8

function bar ()
{
echo «Π­Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ bar» ;
}
$ foo = ‘Π±Π°Ρ€’;
$ foo (); // Π­Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±Π°Ρ€Π°
? ->

ВнутрСнняя (встроСнная) функция

PHP поставляСтся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ стандартными функциями ΠΈ конструкторами.Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ PHP, ΠΈΠ½Π°Ρ‡Π΅ появится ошибка fata Β«undefined functionΒ».

НапримСр: для использования mysql_connect () PHP Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ скомпилирован с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ MySQL.

Анонимная функция

АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΆΠ΅ извСстныС ΠΊΠ°ΠΊ замыкания, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Замыкания Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…; PHP автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ выраТСния Π² экзСмпляры Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ класса Closure.НазначСниС закрытия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис, Ρ‡Ρ‚ΠΎ ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ присвоСниС, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой:

1
2
3
4
5
6
7
8

$ un namedFunction = функция ($ имя) {
printf («ΠŸΡ€ΠΈΠ²Π΅Ρ‚% s \ r \ n», $ name);
};

$ un namedFunction («ΠœΠΈΡ€»);
$ un namedFunction (‘PHP’);
? ->

НадСюсь, эта информация окаТСтся для вас ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ.Π–Π΄Ρƒ Π²Π°ΡˆΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ².

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… массивов ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π² PHP | Π‘Π΅Ρ€Ρ‚ РамакСрс | 2dotstwice :: connected the dots

Одной ΠΈΠ· особСнностСй языка, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π΅Ρ‰Π΅ Π² PHP 5.6, Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π° «…» для обозначСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ функция ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

Π― Ρ€Π΅Π΄ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с подсказками Ρ‚ΠΈΠΏΠΎΠ² для создания Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… массивов.

НапримСр, Ρƒ нас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ класс Movie с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ для установки массива Π΄Π°Ρ‚ эфира, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ DateTimeImmutable:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ количСство ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² DateTimeImmutable ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ setAirDates ():

Если ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅, ΠΊΡ€ΠΎΠΌΠ΅ DateTimeImmutable, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ строку, Π±Ρ‹Π»Π° Π±Ρ‹ Π²Ρ‹Π΄Π°Π½Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Π°Ρ ошибка:

Если Π±Ρ‹ Ρƒ нас ΡƒΠΆΠ΅ Π±Ρ‹Π» массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² DateTimeImmutable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² setAirDates (), ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ снова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β« … Β», Но Π½Π° этот Ρ€Π°Π· для ΠΈΡ… распаковки:

Если Π±Ρ‹ массив содСрТал Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π΅ относящССся ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, ΠΌΡ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π±Ρ‹ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡƒΡŽ Ρ€Π°Π½Π΅Π΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скалярныС Ρ‚ΠΈΠΏΡ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, начиная с PHP 7. НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ для установки списка ΠΎΡ†Π΅Π½ΠΎΠΊ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΡ… Π² нашСм классС Movie:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ объявляСм использованиС строгих Ρ‚ΠΈΠΏΠΎΠ² , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ прСобразования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмому повСдСнию.

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, это Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ свойство rating всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΠΈ Π½Π°ΠΌ Π½Π΅ придСтся ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всС содСрТимоС для ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π°Π΄ Π½ΠΈΠΌΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² getAverageRating (), Π½Π΅ бСспокоясь ΠΎ нСдопустимых Ρ‚ΠΈΠΏΠ°Ρ….

Одним ΠΈΠ· нСдостатков использования этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… массивов являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΠΎΠΉ массив для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ класс Movie, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ список Π΄Π°Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² эфир вмСстС со списком Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠ² Π² конструкторС, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ·ΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ с использованиСм описанного Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании PHP 7 Ρ‚ΠΈΠΏΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² get () всС Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ «массивом», Ρ‡Ρ‚ΠΎ часто Π±Ρ‹Π²Π°Π΅Ρ‚ слишком ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ наши Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ массивы Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ классы Β«ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈΒ». Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ нашС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ вычислСния срСднСго Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ класс ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ список Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π² нашСм конструкторС, Ρ‡Ρ‚ΠΎ сохраняСт Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ.

Если Π±Ρ‹ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот класс ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… foreach, Π½Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс IteratorAggregate:

Π”Π²ΠΈΠ³Π°ΡΡΡŒ дальшС, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ для нашСго списка Π΄Π°Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π°:

ΠŸΠΎΠΌΠ΅Ρ‰Π°Ρ всС кусочки Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠΈ вмСстС Π² классС Movie, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² наш конструктор.ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Ρ‡Π΅ΠΌ «массив», Π² Π½Π°ΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… get:

Если Π±Ρ‹ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊ нашим Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°ΠΌ, ΠΌΡ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠΉΡ‚ΠΈ Π΅Ρ‰Π΅ дальшС ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ значСния Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ настраиваСмыми ограничСниями. НапримСр, Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΎΡ‚ 0 Π΄ΠΎ 5:

Π’Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ Π² наш класс ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ratings, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ внСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ вмСсто чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‡Π»Π΅Π½Ρ‹ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ , всС Π΅Ρ‰Π΅ Π½Π΅ пСрСбирая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ .

ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΈΠ΅ этих ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… классов ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° значСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ, Π½ΠΎ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ нСсколько прСимущСств ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ массивами ΠΈ скалярными значСниями:

  • ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Нам Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ массив для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π»Π΅Π½ΠΎΠ² нашСй ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ;
  • Π“Π΄Π΅ Π±Ρ‹ ΠΌΡ‹ Π½ΠΈ использовали эти ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… значСния всСгда ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ»ΠΈΡΡŒ ΠΏΡ€ΠΈ построСнии. НапримСр, любой Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ 0 Π΄ΠΎ 5;
  • ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ / ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° значСния.НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ getAverage (), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ всСм нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ;
  • ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ нСсколько Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… списков Π² ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠΊΠ΅Π½Π° «…» Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² классы ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ;
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ΡΡ ΡˆΠ°Π½ΡΡ‹ ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² сигнатурах ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². НапримСр, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ввСсти ΠΈ список Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠ², ΠΈ список Π΄Π°Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² эфир, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ случайно ΠΏΡ€ΠΈ построСнии ΠΏΡ€ΠΈ использовании ΠΎΠ±Ρ‰ΠΈΡ… массивов;

К настоящСму Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Π΄Π°Π΅Ρ‚Π΅ΡΡŒ вопросом, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ внСсти измСнСния Π² значСния Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ послС ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ построСния.

Π₯отя ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для облСгчСния рСдактирования, это быстро стало Π±Ρ‹ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ прСимущСство подсказок Ρ‚ΠΈΠΏΠΎΠ². НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ add () Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ add () Π² AirDates Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ DateTimeImmutable. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ затрудняСт сопряТСниС ΠΈ / ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ВмСсто этого ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ просто ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ наши ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΈΡ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ внСсти измСнСния.ПослС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями. ПослС (ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ) построСния всС Ρ‚ΠΈΠΏΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ снова ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ вмСстС с любой Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ.

НапримСр, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ простой ΠΌΠ΅Ρ‚ΠΎΠ΄ toArray () Π² наши ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ внСсти Ρ‚Π°ΠΊΠΈΠ΅ измСнСния:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ массива, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ array_filter ().

Если Π±Ρ‹ Π½Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² сами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, Π³Π΄Π΅ Π±Ρ‹ ΠΎΠ½ΠΈ Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ.Но ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΈΠ· Π½ΠΈΡ… Ρ‚Π°ΠΊΠΆΠ΅ придСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²), поэтому ΠΈΡ… слоТно ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ всСх Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… классах ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ.

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΌΡ‹ всС Π΅Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Π½Π°ΡˆΠΈΡ… классах ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, рСализуя ΠΊΠ°ΠΊ toArray (), Ρ‚Π°ΠΊ ΠΈ getIterator () для всСх ΠΈΠ· Π½ΠΈΡ…. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ достаточно ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ классу , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΎΠ±Π° просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹ΠΉ массив:

ВсС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π±Ρ‹ Π² нашСм классС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠ° Π² конструкторС ΠΈ любая Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°. это относится ΠΊ этой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ final , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π»ΡŽΠ±Ρ‹Ρ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов Π² свойство values ​​таким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΠΌΠΎΠ³Π»ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠ°.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ всС Π΅Ρ‰Π΅ Π΄Π°Π»Π΅ΠΊ ΠΎΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π°, Π² послСдних выпусках PHP становится всС ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Ρ‚ΠΈΠΏΠΎΠ² Π² коллСкциях ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π’ ΠΈΠ΄Π΅Π°Π»Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… шаблонов Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ вСрсии PHP, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‰Π΅ большС ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ созданиС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… классов ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, которая Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ использованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ строкС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ магичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, сравнимыС с __toString (), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ __toInt (), __toFloat () ΠΈ Ρ‚. Π”.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ RFC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ скрСстим ΠΏΠ°Π»ΡŒΡ†Ρ‹! 🀞

Если Π²Ρ‹ нашли этот ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ ❀️ Π½ΠΈΠΆΠ΅.

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды Π² PHP

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды

PHP ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ вашим сцСнариям динамичСски ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… с сСрвСра. Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ сцСнариСв Π² ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ сСрвСрной срСдС.НапримСр, пСрСмСнная SITE_HTMLROOT , прСдоставлСнная (mt) Media Temple, автоматичСски прСдоставит ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΡ€Π½ΡŽ вашСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π° любом сСрвСрС Grid Π±Π΅Π· нСобходимости внСсСния ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ваш сцСнарий. (mt) Media Temple прСдоставляСт нСсколько дСсятков ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для вашСго удобства.

ΠŸΠ ΠžΠ§Π˜Π’ΠΠ™Π’Π• Π’Π½Π°Ρ‡Π°Π»Π΅

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ прСдоставлСна β€‹β€‹Π»ΡŽΠ±Π΅Π·Π½ΠΎ. Установка, настройка ΠΈ устранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ сторонних ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, прСдоставляСмой (mt) Media Temple.НайдитС ΠΌΠΈΠ½ΡƒΡ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ЗаявлСниС ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅.

ИспользованиС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ массивов $ _SERVER ΠΈ $ _ENV.

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ SITE_HTMLROOT , ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡƒΡŽ Π²Ρ‹ΡˆΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² своСм PHP-скриптС, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ:

Имя Ρ„Π°ΠΉΠ»Π°: environment.php

  $ site_path_var = $ _SERVER ["БАЙВ_HTMLROOT"];  

Π­Ρ‚ΠΎ создаст ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ:

/ home / 00000 / domains / example.com / html

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ echo Π² свой PHP-скрипт. НапримСр:

Имя Ρ„Π°ΠΉΠ»Π°: environment.php

  $ site_path_var = $ _SERVER ["БАЙВ_HTMLROOT"];
echo $ site_path_var;  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ свой скрипт Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•:

$ _SERVER ΠΈ $ _ENV — ΡΡƒΠΏΠ΅Ρ€Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ массивы PHP. Π˜Ρ… Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.НЕ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ Π² свой Ρ„Π°ΠΉΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:

Имя Ρ„Π°ΠΉΠ»Π°: environment.php

  Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ $ _SERVER;  

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ использованиС

Π’ сСткС особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды ΠΏΠΎ Ρ‚Ρ€Π΅ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ссли Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипт Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅ Π² Grid, Π²Π°ΠΌ Π½Π΅ придСтся ΠΌΠ΅Π½ΡΡ‚ΡŒ всС свои ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ часто Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹, Ρ‡Π΅ΠΌ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈ ΠΈΠΌΠ΅Π½Π° сСрвСров, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для Π³Ρ€ΠΈΠ΄-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, для балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Grid ΠΈΠ½ΠΎΠ³Π΄Π° трСбуСтся пСрСнос сайтов ΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ физичСскиС ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ срСду. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ явлСниС, Π½ΠΎ это ваТная Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Grid.

  • $ _SERVER ["SITE_HTMLROOT"]
    ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΡ€Π½ΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° вашСго сайта, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Π²ΠΈΠ΄Π° /home/00000/domains/example.com/html.
  • $ _ENV ["DATABASE_SERVER"] — Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ имя сСрвСра Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠ°ΠΊ internal-db.s00000.gridserver.com.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список прСдоставлСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ страницу phpinfo.php для просмотра всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, прСдоставлСнных вашим (mt) Media Temple. Π‘ΠΌ. Наш «Как я ΠΌΠΎΠ³Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ страницу phpinfo.php?Β» ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, обращая Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π΄Π΅Π» Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ PHPΒ» Π½Π° страницС для получСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Установка собствСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ PHP

Π’ сСткС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свои собствСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² сСансС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ созданы.НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды Π² сцСнарии, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки для создания, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

Имя Ρ„Π°ΠΉΠ»Π°: environment.php

  $ _ENV ["MYENV"] = "новая_пСрСмСнная";
$ new_variable_var = $ _ENV ["MYENV"];  

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½Π΅ сСанса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ созданы.

Π’ .htaccess

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды Apache для использования Π² Π²Π°ΡˆΠΈΡ… скриптах Ρ‡Π΅Ρ€Π΅Π· .htaccess , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SetEnv ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° пСрСзаписи. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Β«HTTP_Β» Π² цСлях бСзопасности.

  SetEnv HTTP_MY_VARIABLE "ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅"  

Удобная информация ΠΎ сСрвСрС

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Руководству ΠΏΠΎ Grid Server. Π Π°Π·Π΄Π΅Π»Ρ‹ Β«ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…Β» ΠΈ «БистСмныС ΠΏΡƒΡ‚ΠΈΒ» содСрТат ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ вашСй сСрвСрной срСдС.

PHP ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ статСй
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ выраТСния PHP для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…
ВыраТСния

Π‘Ρ‚Ρ€. 1 ΠΈΠ· 2

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ выраТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ основой программирования Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΈ Π½Π΅ Π² мСньшСй стСпСни Π² PHP.Если Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ идСями, Ρ‚ΠΎ Π²ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² PHP

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅
  1. Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹
    Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с NetBeans PHP — Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹
  2. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ PHP
  3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ выраТСния PHP для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…
  4. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры PHP 1 — if ΠΈ else
  5. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры PHP 2 — ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈ elseif
  6. Π¦ΠΈΠΊΠ»Ρ‹ PHP
  7. Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ‚Π»ΠΈ
  8. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  9. Π”Π΅ΡΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ PHP
  10. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ PHP
  11. Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ NetBeans ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ программирования являСтся «пСрСмСнная».

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ — это просто имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ хранСния ΠΈΠ»ΠΈ мСсто, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’ PHP пСрСмСнная обозначаСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°ΠΊΠΎΠΌ $ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

НапримСр, $ a — это пСрСмСнная, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π½Π°ΠΊ равСнства.

НапримСр:

$ a = 1;

Π•ΡΡ‚ΡŒ ΠΈΡΠΊΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ это ΠΊΠ°ΠΊ

«Π΄ΠΎΠ»Π»Π°Ρ€Π° Π·Π° Π΄ΠΎΠ»Π»Π°Ρ€ равняСтся ΠΎΠ΄Π½ΠΎΠΌΡƒ»

, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит, Ссли Π²Ρ‹ всСгда Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ β€‹β€‹ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ

«Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π² $ a».

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $ a ΠΊΠ°ΠΊ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΈ своСго Ρ€ΠΎΠ΄Π° Π²Π΅Π΄Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ для дальнСйшСго использования.

ВсС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ называСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ присваивания — ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ присваиваСтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $ a.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π·, ΠΈ сохранСниС Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния стираСт Π»ΡŽΠ±Ρ‹Π΅ слСды Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сохранСно.

НапримСр:

$ a = 2;

сохраняСт 2 Π² $ a ΠΈ пСрСзаписываСт всС, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сохранСно.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ?

ΠžΡ‚Π²Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΅Π³ΠΎ имя Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π²Ρ‹ Π±Ρ‹ использовали Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

echo $ a;

, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отправляСт Π½Π΅ тСкст Β«$ aΒ» Π½Π° Π²Ρ‹Π²ΠΎΠ΄, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, хранящССся Π² $ a, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ число 1.

Если Π²Ρ‹ использовали Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки программирования, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для хранСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….PHP Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ практичСски Π»ΡŽΠ±Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

PHP считаСтся слабо Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ PHP Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ составляли список ΠΈΠ»ΠΈ объявляли всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ — простого использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ PHP создал Π΅Π΅ ΠΈ отслСТивал Π΅Π΅.

Π’ основном PHP пытаСтся Π±Ρ‹Ρ‚ΡŒ максимально простым Π² использовании.

Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ

Π•ΡΡ‚ΡŒ нСсколько ΠΏΡ€Π°Π²ΠΈΠ» ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹, Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ Моя_ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру.Π’ΠΎ Π΅ΡΡ‚ΡŒ:

$ Π½Π°Π·Π²Π°Π½ΠΈΠ΅

ΠΈ

$ Имя

— Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ошибки, поэтому Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ остороТны ΠΏΡ€ΠΈ смСшивании прописных ΠΈ строчных Π±ΡƒΠΊΠ².

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ NetBeans ΠΈΠ»ΠΈ Eclipse Π² качСствС своСй систСмы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ PHP, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ автоматичСский запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ список Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π²Π²ΠΎΠ΄Π° — Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· возмоТностСй ΠΊΠ°ΠΊ простой способ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΈ способ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’Ρ‹Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· списка Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ ошибкам, Ρ‡Π΅ΠΌ ΠΈΡ… Π²Π²ΠΎΠ΄.

Π’ Eclipse ΠΈΠΌΠ΅Π½Π° всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ использовали, пСрСчислСны Π² ΠΎΠΊΠ½Π΅ Outline. Если Π²Ρ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅Ρ‚Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ использованиС этого ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π²ΠΎ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Окно Outline ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΊΠΎΠ΄Π΅ PHP.


NetBeans прСдоставляСт срСдство, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π»ΡŽΠ±ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Β«ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ, Π³Π΄Π΅ пСрСмСнная ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ всС случаи ΠΈ Ρ‚. Π”.

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

PHP позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ практичСски любой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ.

НапримСр, Β«abcdΒ» — это строка символов, Π° 3,14 — это число.

Π Π°Π·Π½ΠΈΡ†Π° становится ΠΎΡ‡Π΅Π½ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ, Ссли ΡƒΡ‡Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с 3.14, Π½ΠΎ Π½Π΅ с «abcd».

На самом Π΄Π΅Π»Π΅ это Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎ опСрациям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ с Π½ΠΈΠΌΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ.

PHP распознаСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основных Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…:

  • ЛогичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — истинноС ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ΅
  • integer — Ρ†Π΅Π»ΠΎΠ΅ число, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 1 ΠΈΠ»ΠΈ 2
  • float — число с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Ρ‚ΠΈΠΏΠ° 2.1
  • строка — Π½Π°Π±ΠΎΡ€ символов.

НапримСр:

$ a = ΠΏΡ€Π°Π²Π΄Π°;

сохраняСт логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true Π² $

.

$ a = 1;

сохраняСт Ρ†Π΅Π»ΠΎΠ΅ число 1 Π²

Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² БША.

$ a = 2,1;

сохраняСт float 2.1 Π² $ a ΠΈ

$ a = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚";

сохраняСт строку Hello Π² $ a.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ нСвСроятно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΎ Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΈ ΠΎΠ½ΠΈ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΡΡ‚Π°Ρ‚ΡŒΠΈ, посвящСнной ΠΈΠΌ.

Иногда различия ΠΌΠ΅ΠΆΠ΄Ρƒ этими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ.

НапримСр, 2.0 — это число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈΠ»ΠΈ Ρ†Π΅Π»ΠΎΠ΅ число?

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², это Ρ†Π΅Π»ΠΎΠ΅ число, Π½ΠΎ с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

ΠžΡ‚Π²Π΅Ρ‚ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ дСсятичная Ρ‚ΠΎΡ‡ΠΊΠ°. Π‘ΠΎΠ»Π΅Π΅ тонкая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Β«2.1Β» ΠΈ 2.1 — пСрвая — это строка символов (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, выглядят ΠΊΠ°ΠΊ число), Π° вторая — это число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ число с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ PHP Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости — ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ‡Ρ‚ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Π½ΠΎ послС ввСдСния Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, особСнно Ссли Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками программирования, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… PHP Π½Π΅Ρ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… — Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π² любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Однако Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ хранится.

8>

ΠŸΠΎΡ‡Π΅ΠΌΡƒ PHP считаСтся слабо Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком? 3 Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ популярности PHP

Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык — это язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².Π­Ρ‚ΠΎ относится ΠΊ Ρ‚Π΅ΠΌ сцСнариям программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ опрСдСлСния Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΏΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² этих сцСнариях программирования Π½Π΅Ρ‚ нСобходимости ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, хранящийся Π² Π½ΠΈΡ…. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с этими сцСнариями программирования Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°ΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, строки, Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈ Ρ‚. Π”.), Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈΡ…. Π’Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наша пСрСмСнная являСтся Ρ†Π΅Π»Ρ‹ΠΌ числом. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ PHP — язык со слабой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скрипт PHP?

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PHP Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ опрСдСлСния Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ это оказываСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для программистов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ PHP ΠΎΡ‡Π΅Π½ΡŒ популярСн срСди программистов ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ свободно Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком, этот ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ сцСнарий ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ программистам прСкрасныС возмоТности для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ язык для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊ использованию PHP Π² своих прилоТСниях. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΈΠ·Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ PHP Ρ‚Π°ΠΊ популярСн срСди всСх —

1. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΈ создании динамичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ свободно Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ сцСнария программирования.Π’ силу своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ с динамичСскими прилоТСниями довольно слоТно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Часто этим прилоТСниям приходится ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ дСйствия Π½Π° основС нСизвСстных Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом контСкстС использованиС сцСнария программирования PHP оказываСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ способом. Он Π½Π΅ навязываСт Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² слоТном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

2. Полная свобода программирования

Π’ случаС языков со строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€Π°Π²ΠΈΠ»Π° программирования ΡƒΠΆΠ΅ прСдустановлСны ΠΈ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹.Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, программист Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ измСнСния Π² соотвСтствии с прСдпочтСниями. Π’ этом контСкстС, ΠΎΠ΄Π½Π°ΠΊΠΎ, с PHP ситуация ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ иная. Позволяя программистам ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ свои собствСнныС ΠΏΡ€Π°Π²ΠΈΠ»Π° программирования, этот ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ сцСнарий программирования ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΠΌ свободу дСйствий.

3. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΈ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ

Π―Π·Ρ‹ΠΊ PHP — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых простых языков программирования. Как ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, ΠΎΠ½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ свои Π±ΠΈΡ‚Ρ‹ ΠΈ Π±Π°ΠΉΡ‚Ρ‹, Π½ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ совмСстим для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² любой систСмС.НаписаниС сцСнария PHP довольно прямолинСйно ΠΈ просто, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт программистам ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сцСнарии. Π€Π°ΠΊΡ‚ΠΎΡ€ стоимости Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ PHP популярным! ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PHP являСтся Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ бСсплатно ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ поддСрТиваСтся Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

ПодвСдСниС ΠΈΡ‚ΠΎΠ³ΠΎΠ²

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ программирования

PHP Π·Π°Π²ΠΎΠ΅Π²Π°Π» ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Ρƒ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… программистов ΠΈ стал ΠΈΡ… Ρ„Π°Π²ΠΎΡ€ΠΈΡ‚ΠΎΠΌ Π² настоящСС врСмя, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ скрипт, PHP Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ряд нСдостатков.ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с PHP программисты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ знаниями, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ уязвимыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹. Как язык со слабой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, PHP создаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ возмоТности для ошибок. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ трСбуСтся цСлочислСнный Π²Π²ΠΎΠ΄, Π° ваша пСрСмСнная находится Π² строкС. Как Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, вся функция Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π°. Однако эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, создав ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ структурированный ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ PHP — язык со слабой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Ρ‚Π°ΠΊ популярСн.Π­Ρ‚ΠΎΡ‚ язык программирования ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прСимущСства ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ PHP?

ΠžΡΡ‚Π°Π²Π°ΠΉΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ!

Или Π²Ρ‹ с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Π΅Ρ‚Π΅, ΠΊΠΎΠ³Π΄Π° вашС спСциализированноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ создано с использованиСм PHP? Π‘Π²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с GoodWorkLabs, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π‘Π°Π½Π³Π°Π»ΠΎΡ€Π΅. Π‘Π²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ, ΠΈ наша ΠΊΠΎΠΌΠ°Π½Π΄Π° обсудит ваши трСбования. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π°ΠΌ ΠΏΠΎ адрСсу — [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½] ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρƒ + 91-9863077000

Или ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ здСсь!

.

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

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