DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Subskrybuj, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu

Zmienne środowiskowe (środowiskowe) w systemie Windows zawierają różne informacje o ustawieniach systemu i środowiska użytkownika. Rozróżnia się zmienne środowiskowe użytkownika, systemu i procesu.

Najłatwiejszym sposobem przeglądania zawartości zmiennych środowiskowych w systemie Windows jest otwarcie właściwości systemu ( sysdm.cpl) -> Zaawansowane -> Zmienne środowiskowe. Jak widać, w otwartej sekcji znajdują się dwie sekcje: górna zawiera zmienne środowiskowe użytkownika, dolna zawiera zmienne systemowe.

Ponadto zmienne środowiskowe są przechowywane w rejestrze systemowym. Zmienne użytkownika są przechowywane w . Systemowe - w HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.

Możesz wyświetlić wartości wszystkich zmiennych środowiskowych w wiersz poleceń Okna. Polecenie jest proste:

Polecenie wyświetli listę zmiennych środowiskowych i ich wartości.

W PowerShell, aby wyświetlić wszystkie zmienne środowiskowe, możesz użyć polecenia:

Jeśli chcesz wyświetlić wartość tylko jednej zmiennej, musisz użyć polecenia echo, a nazwa zmiennej musi być ujęta w znaki procentu. Na przykład,

echo %systemroot%

ustaw > c:\tmp\env_var.txt

Zmienne środowiskowe konkretnego procesu można uzyskać za pomocą darmowego Narzędzia Eksploratora procesów(z Sysinternals). Wystarczy otworzyć właściwości procesu i przejść do zakładki Środowisko.

13 lat temu

Trochę uwagi, na którą trzeba uważać:

Jeśli wyłączysz RegisterGlobals i powiązane, a następnie użyjesz get_defined_vars(), możesz zobaczyć coś takiego:

szyk
[ GLOBALNE ] => Tablica
[ GLOBALNE ] => Tablica
* REKURACJA *
[_POST] => Tablica()
[_GET] => Tablica()
[_COOKIE] => Tablica()
[ _PLIKI ] => Tablica()
)

[_POST] => Tablica()
[_GET] => Tablica()
[_COOKIE] => Tablica()
[ _PLIKI ] => Tablica()

)
?>

Zauważ, że $_SERVER tam nie ma. Wygląda na to, że php ładuje superglobalny $_SERVER tylko wtedy, gdy jest gdzieś używany. Możesz to zrobić:

wydrukować"

" .htmlspecialchars(print_r(get_defined_vars(), true )) . "
" ;
wydrukować"
" .htmlznaki specjalne (print_r ($_SERVER , true )) . "
" ;
?>

Na obu listach pojawi się $_SERVER. Myślę, że to „nie jest frajda, bo i tak nic złego się nie stanie, ale mimo wszystko jest to ciekawa ciekawostka.

6 lat temu

Ponieważ get_defined_vars() pobiera tylko zmienne w miejscu wywołania funkcji, istnieje prosty sposób na uzyskanie zmiennych zdefiniowanych w bieżącym zakresie.

// Na samej górze twojego skryptu php
$zmienne = get_defined_vars();

// Teraz zrób swoje
$foo = "foo" ;
$bar = "bar" ;

// Pobierz wszystkie zmienne zdefiniowane w bieżącym zakresie
$zmienne = array_diff(get_defined_vars(), $vars);

Echo "

"
;
print_r($zmienne);
Echo "
" ;
?>

15 lat temu

Oto funkcja, która generuje raport debugowania do wyświetlenia lub wiadomości e-mail
za pomocą get_defined_vars. Doskonały do ​​uzyskania szczegółowej migawki bez
polegając na danych wejściowych użytkownika.

function generateDebugReport ($method , $defined_vars , $email = "undefined" )(
// Funkcja tworzenia raportu debugowania do wyświetlenia lub wysłania e-mailem.
// Sposób użycia: generateDebugReport(metoda,get_defined_vars(),e-mail);
// Gdzie metoda to "przeglądarka" lub "e-mail".

// Utwórz listę ignorowanych kluczy zwracanych przez "get_defined_vars".
// Na przykład HTTP_POST_VARS, HTTP_GET_VARS i inne to
// nadmiarowe (tak samo jak _POST, _GET)
// Uwzględnij także zmienne, które chcesz zignorować ze względów bezpieczeństwa - np. Identyfikator PHPSESS.
$ignorelist =array("HTTP_POST_VARS" , "HTTP_GET_VARS" ,
"HTTP_COOKIE_VARS" , "HTTP_SERVER_VARS" ,
"HTTP_ENV_VARS" , "HTTP_SESSION_VARS" ,
"_ENV" , "PHPSESSID" , "SESS_DBUSER" ,
"SESS_DBPASS" , "HTTP_COOKIE" );

$timestamp = date("m/d/r h:m:s" );
$message = "Utworzono raport debugowania $timestamp \n" ;

// Pobierz ostatni błąd SQL, gdzie $link jest identyfikatorem zasobu
// dla mysql_connect. Dodaj komentarz lub zmodyfikuj ustawienia bazy danych lub abstrakcji.
globalny $link ;
$sql_error = mysql_error($link);
if($sql_error )(
$message .= "\nWiadomości Mysql:\n" . mysql_error($link);
}
// Zakończ MySQL

// Można tutaj użyć funkcji rekurencyjnej. Masz pomysł ;-)
foreach($defined_vars as $key => $val )(
if(is_array ($val ) && ! in_array ($key , $ignorelist ) && count ($val ) > 0 )(
$wiadomość .= "\n $tablica kluczy (klucz=wartość):\n" ;
foreach($wartość jako $podklucz => $podwartość )(
if(! in_array ($subkey , $ignorelist ) && ! is_array ($subval ))(
$wiadomość .= $podklucz . "=" . $podwal . "\n" ;
}
elseif(! in_array ($subkey , $ignorelist ) && is_array ($subval ))(
foreach($podwartość jako $podklucz => $podwartość )(
if(! in_array ($podklucz , $ignorelist ))(
$wiadomość .= $podklucz . "=" . $podwartość . "\n" ;
}
}
}
}
}
elseif(!
is_array ($val ) && ! in_array ($klucz , $ignorelist ) && $val )(
$message .= "\nZmienna " . $klucz. "=" . wart. "\n" ;
}
}

If($metoda == "przeglądarka" )(
echo nl2br($wiadomość);
}
elseif($metoda == "e-mail" )(
if($e-mail == "nieokreślony" )(
$e-mail = $_SERWER["SERWER_ADMIN"];
}

$mresult = poczta ($email , "Raport debugowania dla " . $_ENV [ "NAZWA HOSTA" ]. "" , $message );
if($mwynik == 1 )(
Echo "Raport debugowania wysłany pomyślnie.\n";
}
w przeciwnym razie(
Echo „Nie udało się wysłać raportu debugowania.\n”;
}
}
}
?>

17 lat temu

Prosta procedura do konwersji obiektu get_defined_vars na XML.

funkcja obj2xml ($v , $indent = "" ) (
while (list($klucz , $val ) = każdy ($v )) (
if ($klucz == "__attr" ) kontynuuj;
// Sprawdź __attr
if (is_object ($val -> __attr )) (
while (list($klucz2 , $wartość2 ) = each ($val -> __attr )) (
$atr .= " $klucz2 =\" $wartość2 \"" ;
}
}
w przeciwnym razie $attr = "" ;
if (is_array ($val ) || is_object ($val )) (
print(" $wcięcie< $key$attr >\n");
obj2xml ($val , $wcięcie . " " );
print(" $wcięcie\n");
}
else print(" $wcięcie< $key$attr >$val\n");
}
}

//Przykładowy obiekt
$x -> imię -> pierwszy = "Jan" ;
$x -> nazwa -> ostatni = "Kowalski" ;
$x -> arr [ "Owoc" ] = "Banan" ;
$x -> arr [ "Warzywa" ] = "Marchew" ;
$y -> klient = $x ;
$y -> klient -> __attr -> id = "176C4" ;

$z = get_defined_vars();
obj2xml($z["y"]);
?>
wypisze:


Jan
Kowal


Banan
marchewka

11 lat temu

Uwaga, get_defined_vars() nie zwraca zestawu referencji do zmiennych (jak się spodziewałem). Na przykład:

// zdefiniuj zmienną
$moja_zmienna = "foo" ;

// pobierz naszą listę zdefiniowanych zmiennych
$defined_vars = get_defined_vars();

// teraz spróbuj zmienić wartość poprzez zwróconą tablicę
$defined_vars [ "moja_zmienna" ] = "bar" ;

echo $moja_zmienna , "\n" ;

?>

wypisze "foo" (oryginalna wartość). Byłoby "miło, gdyby get_defined_vars() miało opcjonalny argument, aby były odniesieniami, ale wyobrażam sobie, że jest to raczej wyspecjalizowane żądanie. Możesz to zrobić samodzielnie (mniej wygodnie) za pomocą czegoś takiego:

$definiowane_zmienne = tablica();
$var_names = array_keys(get_defined_vars());

foreach ($var_names jako $var_name )
{
$defined_vars [ $var_name ] =& $ $var_name ;
}

?>

1 rok temu

Pisałem tutaj wcześniej o tym, że „to” znajduje się w get_defined_vars.

Okazuje się, że nie zawsze tam jest, ale w niektórych przypadkach pojawi się w niewytłumaczalny sposób.

Php -r"
klasa Test(
funkcja publiczna a() (var_dump(array_keys(get_defined_vars()));$a = 123;)
funkcja publiczna b() (var_dump(array_keys(get_defined_vars()));$this;)
}
$t = nowy Test();
$t->a();
$t->b();
"

szyk()
tablica("to")

Nie dzieje się tak w PHP 7.2, ale stanie się w PHP 5.6.

1 rok temu

Niektóre komentarze tutaj wskazują, że ta funkcja nie zwróci referencji. Zwraca jednak nazwy i nazwy są "odniesieniami".

Nie polecałbym tutaj sugestii, które przekształcają to w referencje.

funkcja publiczna x($a, $b, $c) (
foreach(array_keys(get_defined_vars()) jako $key)
if($klucz !== "to")
$to->y($($klucz));
}

Funkcja publiczna y(&$input) (
$wejście++;
}

Zamiast $() możesz również użyć $$.

Zrobiłem w swoim czasie kilka dziwacznych rzeczy, aby stworzyć bardzo ogólny kod, ale nigdy nie musiałem robić czegoś takiego jak powyżej. Może nawet nie działać (ale powinno, ponieważ nie różni się od $a[$key]).

Mógłbyś też zrobić $$key++, ale nigdy nie widziałem takiego kodu, który nie byłby strasznie zły (używanie dynamicznego tam, gdzie dynamika nie jest korzystna).

Jeśli robisz coś takiego, przyjrzyj się temu dokładniej.

13 lat temu

Trochę uwagi, na którą trzeba uważać:

Jeśli wyłączysz RegisterGlobals i powiązane, a następnie użyjesz get_defined_vars(), możesz zobaczyć coś takiego:

szyk
[ GLOBALNE ] => Tablica
[ GLOBALNE ] => Tablica
* REKURACJA *
[_POST] => Tablica()
[_GET] => Tablica()
[_COOKIE] => Tablica()
[ _PLIKI ] => Tablica()
)

[_POST] => Tablica()
[_GET] => Tablica()
[_COOKIE] => Tablica()
[ _PLIKI ] => Tablica()

)
?>

Zauważ, że $_SERVER tam nie ma. Wygląda na to, że php ładuje superglobalny $_SERVER tylko wtedy, gdy jest gdzieś używany. Możesz to zrobić:

wydrukować"

" .htmlspecialchars(print_r(get_defined_vars(), true )) . "
" ;
wydrukować"
" .htmlznaki specjalne (print_r ($_SERVER , true )) . "
" ;
?>

Na obu listach pojawi się $_SERVER. Myślę, że to „nie jest frajda, bo i tak nic złego się nie stanie, ale mimo wszystko jest to ciekawa ciekawostka.

6 lat temu

Ponieważ get_defined_vars() pobiera tylko zmienne w miejscu wywołania funkcji, istnieje prosty sposób na uzyskanie zmiennych zdefiniowanych w bieżącym zakresie.

// Na samej górze twojego skryptu php
$zmienne = get_defined_vars();

// Teraz zrób swoje
$foo = "foo" ;
$bar = "bar" ;

// Pobierz wszystkie zmienne zdefiniowane w bieżącym zakresie
$zmienne = array_diff(get_defined_vars(), $vars);

Echo "

"
;
print_r($zmienne);
Echo "
" ;
?>

15 lat temu

Oto funkcja, która generuje raport debugowania do wyświetlenia lub wiadomości e-mail
za pomocą get_defined_vars. Doskonały do ​​uzyskania szczegółowej migawki bez
polegając na danych wejściowych użytkownika.

function generateDebugReport ($method , $defined_vars , $email = "undefined" )(
// Funkcja tworzenia raportu debugowania do wyświetlenia lub wysłania e-mailem.
// Sposób użycia: generateDebugReport(metoda,get_defined_vars(),e-mail);
// Gdzie metoda to "przeglądarka" lub "e-mail".

// Utwórz listę ignorowanych kluczy zwracanych przez "get_defined_vars".
// Na przykład HTTP_POST_VARS, HTTP_GET_VARS i inne to
// nadmiarowe (tak samo jak _POST, _GET)
// Uwzględnij także zmienne, które chcesz zignorować ze względów bezpieczeństwa - np. Identyfikator PHPSESS.
$ignorelist =array("HTTP_POST_VARS" , "HTTP_GET_VARS" ,
"HTTP_COOKIE_VARS" , "HTTP_SERVER_VARS" ,
"HTTP_ENV_VARS" , "HTTP_SESSION_VARS" ,
"_ENV" , "PHPSESSID" , "SESS_DBUSER" ,
"SESS_DBPASS" , "HTTP_COOKIE" );

$timestamp = date("m/d/r h:m:s" );
$message = "Utworzono raport debugowania $timestamp \n" ;

// Pobierz ostatni błąd SQL, gdzie $link jest identyfikatorem zasobu
// dla mysql_connect. Dodaj komentarz lub zmodyfikuj ustawienia bazy danych lub abstrakcji.
globalny $link ;
$sql_error = mysql_error($link);
if($sql_error )(
$message .= "\nWiadomości Mysql:\n" . mysql_error($link);
}
// Zakończ MySQL

// Można tutaj użyć funkcji rekurencyjnej. Masz pomysł ;-)
foreach($defined_vars as $key => $val )(
if(is_array ($val ) && ! in_array ($key , $ignorelist ) && count ($val ) > 0 )(
$wiadomość .= "\n $tablica kluczy (klucz=wartość):\n" ;
foreach($wartość jako $podklucz => $podwartość )(
if(! in_array ($subkey , $ignorelist ) && ! is_array ($subval ))(
$wiadomość .= $podklucz . "=" . $podwal . "\n" ;
}
elseif(! in_array ($subkey , $ignorelist ) && is_array ($subval ))(
foreach($podwartość jako $podklucz => $podwartość )(
if(! in_array ($podklucz , $ignorelist ))(
$wiadomość .= $podklucz . "=" . $podwartość . "\n" ;
}
}
}
}
}
elseif(!
is_array ($val ) && ! in_array ($klucz , $ignorelist ) && $val )(
$message .= "\nZmienna " . $klucz. "=" . wart. "\n" ;
}
}

If($metoda == "przeglądarka" )(
echo nl2br($wiadomość);
}
elseif($metoda == "e-mail" )(
if($e-mail == "nieokreślony" )(
$e-mail = $_SERWER["SERWER_ADMIN"];
}

$mresult = poczta ($email , "Raport debugowania dla " . $_ENV [ "NAZWA HOSTA" ]. "" , $message );
if($mwynik == 1 )(
Echo "Raport debugowania wysłany pomyślnie.\n";
}
w przeciwnym razie(
Echo „Nie udało się wysłać raportu debugowania.\n”;
}
}
}
?>

17 lat temu

Prosta procedura do konwersji obiektu get_defined_vars na XML.

funkcja obj2xml ($v , $indent = "" ) (
while (list($klucz , $val ) = każdy ($v )) (
if ($klucz == "__attr" ) kontynuuj;
// Sprawdź __attr
if (is_object ($val -> __attr )) (
while (list($klucz2 , $wartość2 ) = each ($val -> __attr )) (
$atr .= " $klucz2 =\" $wartość2 \"" ;
}
}
w przeciwnym razie $attr = "" ;
if (is_array ($val ) || is_object ($val )) (
print(" $wcięcie< $key$attr >\n");
obj2xml ($val , $wcięcie . " " );
print(" $wcięcie\n");
}
else print(" $wcięcie< $key$attr >$val\n");
}
}

//Przykładowy obiekt
$x -> imię -> pierwszy = "Jan" ;
$x -> nazwa -> ostatni = "Kowalski" ;
$x -> arr [ "Owoc" ] = "Banan" ;
$x -> arr [ "Warzywa" ] = "Marchew" ;
$y -> klient = $x ;
$y -> klient -> __attr -> id = "176C4" ;

$z = get_defined_vars();
obj2xml($z["y"]);
?>
wypisze:


Jan
Kowal


Banan
marchewka

11 lat temu

Uwaga, get_defined_vars() nie zwraca zestawu referencji do zmiennych (jak się spodziewałem). Na przykład:

// zdefiniuj zmienną
$moja_zmienna = "foo" ;

// pobierz naszą listę zdefiniowanych zmiennych
$defined_vars = get_defined_vars();

// teraz spróbuj zmienić wartość poprzez zwróconą tablicę
$defined_vars [ "moja_zmienna" ] = "bar" ;

echo $moja_zmienna , "\n" ;

?>

wypisze "foo" (oryginalna wartość). Byłoby "miło, gdyby get_defined_vars() miało opcjonalny argument, aby były odniesieniami, ale wyobrażam sobie, że jest to raczej wyspecjalizowane żądanie. Możesz to zrobić samodzielnie (mniej wygodnie) za pomocą czegoś takiego:

$definiowane_zmienne = tablica();
$var_names = array_keys(get_defined_vars());

foreach ($var_names jako $var_name )
{
$defined_vars [ $var_name ] =& $ $var_name ;
}

?>

1 rok temu

Pisałem tutaj wcześniej o tym, że „to” znajduje się w get_defined_vars.

Okazuje się, że nie zawsze tam jest, ale w niektórych przypadkach pojawi się w niewytłumaczalny sposób.

Php -r"
klasa Test(
funkcja publiczna a() (var_dump(array_keys(get_defined_vars()));$a = 123;)
funkcja publiczna b() (var_dump(array_keys(get_defined_vars()));$this;)
}
$t = nowy Test();
$t->a();
$t->b();
"

szyk()
tablica("to")

Nie dzieje się tak w PHP 7.2, ale stanie się w PHP 5.6.

1 rok temu

Niektóre komentarze tutaj wskazują, że ta funkcja nie zwróci referencji. Zwraca jednak nazwy i nazwy są "odniesieniami".

Nie polecałbym tutaj sugestii, które przekształcają to w referencje.

funkcja publiczna x($a, $b, $c) (
foreach(array_keys(get_defined_vars()) jako $key)
if($klucz !== "to")
$to->y($($klucz));
}

Funkcja publiczna y(&$input) (
$wejście++;
}

Zamiast $() możesz również użyć $$.

Zrobiłem w swoim czasie kilka dziwacznych rzeczy, aby stworzyć bardzo ogólny kod, ale nigdy nie musiałem robić czegoś takiego jak powyżej. Może nawet nie działać (ale powinno, ponieważ nie różni się od $a[$key]).

Mógłbyś też zrobić $$key++, ale nigdy nie widziałem takiego kodu, który nie byłby strasznie zły (używanie dynamicznego tam, gdzie dynamika nie jest korzystna).

Jeśli robisz coś takiego, przyjrzyj się temu dokładniej.

zmienne w php- jest to rodzaj kontenera informacji, który może zawierać różne typy danych (tekst, liczby, tablice itp.). Ogólnie zmienne pozwalają tworzyć, przechowywać, modyfikować, a następnie szybko uzyskiwać dostęp do określonych w nich informacji.

Jak utworzyć zmienną w PHP

Początkowo zmienne zawierają znak $ (dolar) - oznaczenie użycia zmiennej, następnie litery Alfabet łaciński(od a do z oraz małe i duże), na koniec mogę zawrzeć liczby. Dozwolone jest również użycie podkreślenia (nie na końcu) w tytule.

Jak nazywać zmienne:

$var
$zmienna
$rok1945
$_zmienna
Jak nie nazywać zmiennych:

$1 - składa się tylko z cyfry
$1var - nie możesz zaczynać nazwy zmiennej od liczby
$/var - dozwolone jest tylko podkreślenie z dodatkowych znaków _
$zmienna - cyrylica jest dozwolona w dokumentacji php, ale nie jest zalecana
$var iable - nie można używać spacji

Każda zmienna ma przypisaną wartość. Znak służy do przypisywania wartości. = (równa się). Podczas przetwarzania skryptu wartość zmiennej może zmieniać się wielokrotnie w zależności od różnych warunków.

$miasto = "Moskwa"; // zmiennej $city przypisano ciąg (w cudzysłowie) wartość Moscow
$rok = 1147; // a zmiennej $rok przypisano wartość liczbową 1147
?>

$nazwa = "Aleksander";
$Nazwa = "Alex";
echo "$nazwa, $Imię"; // drukuje "Aleksander, Aleksiej"
?>

Zmienne wyjście PHP

Osobno powinieneś przeanalizować sposób wyświetlania zmiennych za pomocą oświadczenia wyjściowe, którego pracę analizowaliśmy w ostatniej lekcji Tworzenie strony PHP. operatory wyjściowe. . Poniżej podam kilka ilustrujących przykładów z komentarzami.

// Tak ustawiamy wartości zmiennych
$nazwa1 = "Alex";
$name2 = "Aleksander";

// Wyświetl zmienne
echo $nazwa2; // Wyjście: Aleksander
echo "nazwa1 to $nazwa1"; // imię1 to Aleksiej

// Używając pojedynczych cudzysłowów, wypisz
// nazwa zmiennej, a nie wartość
echo "nazwa1 to $nazwa1"; // wyjście: nazwa1 to $nazwa1

// możesz wyświetlić tylko wartości zmiennych
echo $nazwa1; // Aleksiej
echo $nazwa1,$nazwa2; // AleksiejAleksander
echo $nazwa1." ".$nazwa2; // Aleksiej Aleksander
echo "$nazwa1, $nazwa2"; // Aleksiej, Aleksander

Echo<<Używa składni "tutaj dokument" do wyjścia
wiele linii z substytucją $zmienna.
KONIEC;

Operacje na zmiennych PHP

Operacje arytmetyczne w PHP
W przypadku wartości liczbowych można wykonywać operacje arytmetyczne: dodawanie, odejmowanie, mnożenie i tak dalej.

-$a(negacja) Zmień znak $a.
$a + $b(dodanie) Suma $ai $b.
$a - $b(odejmowanie) Różnica między $a a $b.
$a * $b(pomnóż) Iloczyn $a i $b.
$a / $b(dzielenie) Iloraz $a podzielony przez $b.
$a % $b(modulo) Pozostała część z $a podzielona przez $b.
Rozważ przykłady

$a = 2; // zauważ, że w przypadku liczb cudzysłowy nie są umieszczane
$b = 3; // zauważ, że w przypadku liczb cudzysłowy nie są umieszczane

$wynik = $a + $b; // dodaj zmienne
echo $wynik; // drukuje 5

$wynik = $b - $a; // dodaj zmienne
echo $wynik; // drukuje 1

Operacje inkrementacji i dekrementacji w PHP
Operacje te przydadzą się głównie przy konstruowaniu cykli, o których powiemy nieco później.
prefiks- operatory napisane PRZED zmienną ( --$a; ++$a). Zwróć wartość zmiennej przed zmianami.
Przyrostek- operatory pisane po zmiennej ( $a--; $a--). Zwróć wartość zmiennej ze zmianami.
Przyrost- zwiększenie wartości.
Zmniejszenie- malejąca wartość.

++$a przyrost prefiksu. Zwiększa $a o jeden i zwraca wartość $a.
$a++ przyrost przyrostka. Zwraca wartość $a, a następnie zwiększa $a o jeden.
--$a dekrementacja prefiksu. Zmniejsza $a o jeden i zwraca wartość $a.
$a-- Dekrementacja przyrostka. Zwraca wartość $a, a następnie zmniejsza $a o jeden.
Echo "

Przyrost przyrostka

";
$a = 5;
echo "Powinno być 5:" . $a++ . "\n";

Echo"

przyrost prefiksu

";
$a = 5;
echo "Powinno być 6: " . ++$a . "\n";
echo "Powinno być 6: " . $a. "\n";

Echo"

Dekrementacja przyrostka

";
$a = 5;
echo "Powinno być 5:" . $a-- . "\n";

Echo"

dekrementacja prefiksu

";
$a = 5;
echo „Powinno być 4:”. --$a . "\n";
echo „Powinno być 4:”. $a. "\n";
?>

Operacje przypisania w PHP
Operator bazowy wygląda jak = . Na pierwszy rzut oka może się wydawać, że jest to operator równości. Właściwie tak nie jest. W efekcie operator przypisania oznacza, że ​​lewy operand otrzymuje wartość prawego wyrażenia (tj. jest ustawiany na wartość wynikową). Połączeni operatorzy- są to operatory, które pozwalają wykorzystać poprzednie wartości zmiennych do kolejnych operacji (dołączyć do zmiennej łańcuchowej (z tekstem) lub dodać wartości liczbowe).

$a = ($b = 2) + 4; // wynik: $a jest ustawione na 6, $b jest ustawione na 2.

$a = 2;
$a += 3; // ustawia $a na 5, podobnie do $a = $a + 3;
$b = "Cześć";
$b .= "Pokój!"; // ustawia $b na "Hello World!", tak jak $b = $b . "Tam!";

Istnieje również operacje porównawcze oraz łamigłówka, ale porozmawiamy o nich w następnych lekcjach. Postaram się nie straszyć Cię dużą ilością informacji na raz!)

Na pewno masz w domu szafę lub komodę. Zasada ich użycia jest prosta: umieszczamy tam rzeczy, których nie potrzebujemy w tej chwili, ale mogą być potrzebne po pewnym czasie.

Zmienne są ułożone dokładnie w ten sam sposób. Możesz nadać im pewną wartość i przechowywać je tam, aż będziesz ich potrzebować.

Tworzenie zmiennych

Możesz umieścić wartość w zmiennej w ten sposób:

W powyższym kodzie utworzyliśmy zmienną $name i umieściliśmy w niej wartość Ivan, a następnie utworzyliśmy zmienną $age i przypisaliśmy jej wartość 20.

Nazwa „zmienna” oznacza, że ​​jej wartość może się zmieniać podczas wykonywania skryptu:

W niektórych językach zmienna musi być najpierw „zadeklarowana”, zanim zostanie użyta. W PHP nie ma deklaracji - zmienna jest tworzona w momencie wpisania do niej wartości.
Jednak programiści PHP często mówią „zadeklaruj zmienną” zamiast „utwórz zmienną”.

Ponadto, zamiast „wstawić wartość do zmiennej” często mówi się, że „przypisz wartość”.
Powód jest prosty – symbol = , dzięki któremu przechowujemy wartość w zmiennej, nazywamy „operatorem przypisania”. Stąd termin „przypisać”.

Zmienne konwencje nazewnictwa

1. Nazwa zmiennej zaczyna się od symbolu $.

2. Drugi znak może być literą lub podkreśleniem _

W nazwach zmiennych rozróżniana jest wielkość liter. $name i $Name to różne zmienne.

Wyświetlanie wartości zmiennej na ekranie

Możesz wyświetlić zmienną za pomocą znanego nam polecenia echo:

Polecenie echo pozwala wyświetlić wiele wartości jednocześnie:

Zauważ, że przekazaliśmy 2 wartości do echa, oddzielając je przecinkiem. Możemy więc przekazać tyle wartości, ile chcemy. Poniższe dwa przykłady dadzą ten sam wynik:

Również w PHP istnieje skrócona składnia do wyprowadzania zmiennych. Zamiast

Przed PHP 5.4 skrócona składnia działała tylko wtedy, gdy dyrektywa short_open_tag była włączona w ustawieniach PHP, co pozwala również na użycie skróconego tagu otwierającego

Sprawdzanie wartości zmiennej

Polecenie echo nie zawsze jest wygodne do sprawdzania bieżącej wartości zmiennej. Na przykład, jeśli spróbujesz wyświetlić pusty ciąg „” absolutnie nic nie zostanie wyświetlone na ekranie. I nie jest jasne, jaki jest powód - w pustej zmiennej lub niedziałającym kodzie.

Dlatego funkcja var_dump() służy do sprawdzania wartości zmiennej:

Wynik wykonania skryptu:

String(5) "Wasia" string(0) ""

Jak widać, PHP wyświetla nie tylko zawartość zmiennej, ale także liczbę znaków, a nawet typ zmiennej (string). Przyjrzymy się szczegółowo typom danych w następnych lekcjach.

Usuwanie zmiennych

Możesz usunąć istniejącą zmienną za pomocą funkcji unset():

A teraz czas trochę poćwiczyć.

Pamiętaj, że prawie każdy problem PHP może mieć wiele rozwiązań. Dlatego jeśli Twoje decyzje różnią się od tych napisanych na tej stronie, nie oznacza to wcale, że zrobiłeś coś złego.

Napisz skrypt, który:
1. Tworzy zmienne o nazwach tytuł i treść oraz niektóre wartości.
2. Wyświetla wartość zmiennej title wewnątrz znacznika h1 oraz wartość zmiennej content wewnątrz znacznika div.

Pokaż rozwiązanie

", $tytuł, ""; Echo "

", $treść, "
"; ?>

Jeszcze raz chcę zwrócić uwagę na to, że nie jest to jedyna słuszna decyzja. Na przykład poniższy kod da ten sam wynik:

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Subskrybuj, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu