Константы, переменные - php, javascript



Константы
php
Важно!
Значение константы нельзя изменять после объявления

Можно объявлять константами:
  • bool
  • int
  • float
  • string
  • array
  • и др.
define("CONSTANT1", "Здравствуй, мир1."); //вариант 1
const CONSTANT2 = 'Здравствуй, мир2.'; //вариант 2
define("CONSTANT_ARRAY", [1,2,3]);

if(defined('CONSTANT1') && defined('CONSTANT2')){ //определена ли константа CONSTANT1 И CONSTANT2
   echo CONSTANT1." ".CONSTANT2; 
}
js
константы "частично" можно менять
const constant1 = 1;
//const constant1 = 2; //так нельзя
//constant1 = 2; //так нельзя

if(constant1 == 1){//a так можно
   const constant1 = 2;
   console.log(constant1); //здесь 2
}
console.log(constant1); //здесь 1

const constant2 = [2,3,4];
//constant2 = [2,3,4,5]; //так нельзя
constant2[0] = 1; //так можно
constant2.push(8); //так можно
console.log(constant2);


const constant3 = {
   "a" : 2,
   "b" : 3,
   "c" : 4,
};
constant3.b = 5; //так можно
console.log(constant3);

Переменные
Переменная - поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным.
Значение переменной - данные, которые находятся в переменной.
Переменная - это то, что изменяется по коду
php
$a = 5; //переменная а, значение переменной 5
$a = "wer"; //переменная а, а значение переменной стало "wer"
$a = [1,2,3,8];
js
let a; //var a; 
a = 5; //переменная а, значение переменной 5
a = "wer"; //переменная а, а значение переменной стало "wer"

Предопределённые переменные php
первоисточник

Суперглобальные переменные — Встроенные переменные, которые всегда доступны во всех областях
  • $GLOBALS — Ссылки на все переменные глобальной области видимости
  • $_SERVER — Информация о сервере и среде исполнения
  • $_GET — Переменные HTTP GET
  • $_POST — Переменные HTTP POST
  • $_FILES — Переменные файлов, загруженных по HTTP
  • $_REQUEST — Переменные HTTP-запроса
  • $_SESSION — Переменные сессии
  • $_ENV — Переменные окружения
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — Предыдущее сообщение об ошибке
  • $http_response_header — Заголовки ответов HTTP
  • $argc — Количество аргументов, переданных скрипту
  • $argv — Массив переданных скрипту аргументов
Видимость переменных php
$a = 1;
$b = 2;

global $a1;
$a1 = 10;
echo "a+b=".$a+$b."<br>";
echo "(a+b)=".($a+$b)."<br>";
include("second.php"); //в файле тоже будут видны


function Sum1(){
   echo "sum1: a+b=".$a+$b."<br>"; //так a b не видны
   echo "sum1: a1=".$a1."<br>"; //а1 не видна
}
Sum1(); //0


function Sum2(){
   global $a,$b, $c; //объявляем глобальными
   $c = 5; //эта будет видна за пределами функции
   $d = 6;
   $GLOBALS["e"] = 7; //так тоже можно объявить глобальной
   echo "sum2: a+b=".$a+$b."<br>"; //так видны
   
}


Sum2(); 
echo "c=".$c."<br>"; //5
echo "d=".$d."<br>";//пусто
echo "e=".$e."<br>";//7

function Sum3(){
   echo "sum3: a+b=";
   echo $GLOBALS["a"]+$GLOBALS["b"]."<br>";
}

Sum3(); 
second.php
<?
echo "second.php: ";
echo "a+b=".$a+$b."<br>";

a+b=3
(a+b)=3
second.php: a+b=3
sum1: a+b=0
sum1: a1=
sum2: a+b=3
c=5
d=
e=7
sum3: a+b=3

Видимость переменных js
a = 1; // cтановится глобальной.  если не выбран строгий режим "use strict". Если выбран, то ошибка
let la=2; //если внутри блока, то область видимости переменной ограничивается этим блоком. 
var va=3; //область видимости вся функция, в которой они были объявлены


console.log("la+va="+la+va,"(la+va)="+(la+va));//23 - как строки  сложатся, 5 - как числа сложатся   


if(a == 1){
   b = 4; //будет видно за пределами if (если не "use strict")
   var vb = 4; //будет видно за пределами if
   let lb = 4; //НЕ будет видно за пределами if
}

console.log("b="+b,"vb="+vb);
//console.log("lb="+lb); //ошибка, lb не  определено

function Func1(){
   c = 5; //cтановится глобальной.  если не выбран строгий режим ("use strict";). Если выбран, то ошибка
   let lc = 5; //за пределами функции не видно
   var vc = 5; //за пределами функции не видно

   console.log("Func1: a="+a, "la="+la, "va="+va, "c="+c, " lc="+lc, "vc="+vc); 
   
   a++; 
   la++;
   va++;
   c++;
   lc++;
   vc++;
   console.log("Func1 after ++: a="+a, "la="+la, "va="+va, "c="+c, " lc="+lc, "vc="+vc); 

}

Func1(); 
console.log("after Func1: a="+a, "la="+la, "va="+va, "c="+c); 
//console.log("after Func1: lc="+lc); //undef
//console.log("after Func1: vc="+vc); //undef


function Func2(){
   let a =100;   
   let la=200;
   var va=300;
   var c = 400;            
}
Func2(); 
console.log("after Func2 a ="+a,"la="+la,"va ="+va, "c="+c); //не изменились
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!