[Release] PHP - част 1 (Оператори)

Bo$cH37o

New Member
Joined
Mar 21, 2010
Messages
367
Reaction score
67
Оператори
Оператора е част от кода, който използва една или повече променливи или елементи, за да осъществите изчисление или за да сравните изрази. Можете да използвате оператори за извършване на аритметични и логически операции, както и за сравнение.
В PHP са налични следните оператори:

Аритметични оператори: Използват се за математически изчисления
Оператори за присвояване: Използват се за присвояване на стойности
Оператор за сравняване: Използва се за сравнения
Оператор за изпълнение: Използва се за сравнение на код, като команди на шела; резултатът от изпълнението се присвоява в променлива
Инкрементиращи/декрементиращи оператори: Използват за Инкрементиращи (увеличаване) и декрементиращи (намаляване) на стойности
Низови оператори: Използват за конкатенция на 2 низа
Конкатениращи оператори: Използват се за разбора на низове

Сега ще се запознаем с тези оператори в подробности.

Аритметични оператори
Както може би се досещате от името, можете да използвате тези оператори за извършване на математически действия. Ето и операторите:
+ (Събиране) Изчислява сумата на 2 числа или конкатенира низове.
- (Изваждане) Изчислява разликата между две числа.
* (Умножение) Изчислява просизведението на 2 числа.
/ (Делене) Изчислява частното на две числа
% (Остатък) Изчислява остатъка при делението на две числа

Ето ви и няколко примера за използване на аритметични оператори:
$Num1 = 9;
$Num2 = 3;
$Result = $Num1 + $Num2; //$Result = = 12
$Result = $Num1 - $Num2; //$Result = = 6
$Result = $Num1 * $Num2; //$Result = = 27
$Result = $Num1 / $Num2; //$Result = = 3
$Result = $Num1 % $Num2; //$result = = 0

В горния пример на променливата $Num1 и $Num2 са присвоени стойности и са използвани аритметични оператори.

Оператор за умножение
Оператора за умножение се използва за умножение на две числа. Синтаксисът на оператора за умножение е следния.
$Result = $Num1*$Num2;

В горния синтаксис PHP разглежда $Num1 и $Num2 като числа.
В следващите две примера оператора за умножение се използва за намира не на произведението на две числа:
$Result = 3*5; // Връща стойност 15
$Result = 556.29*262.34 // Връща стойност 145929.2484

Оператор за деление
Можете да използвате оператора за делене за намиране на частното на две числа. Оператора връща стойност реално число. Синтаксисът е следния:
$Result = $Num1 / $Num2

В горния синтаксис $Num1 и $Num2 са числа. Оператора връща резултата от делението на $Num1 и $Num2 като реално число.
Ето и няколко примера за използване на оператора за делене.
$Result = 19 / 3; // Връща стойност 6.3
$Result = 26 / 3; // Връща стойност 8.66667

В горните две примера първото цяло число се дели на второто и резултатът се съхранява в променливата $Result

Оператор за деление на модул
Оператора за деление на модул се използва за намиране на остатъка при деление на две числа. Синтаксисът на оператора е следният:

sult = $Num1 % $Num2;
Където, $Num1 и $Num2 са числа. Оператора връща остатъка при деление на $Num1 с $Num2.
Ето няколко примера за използване на оператора за деление на модул:
$Result = 24 % 8; // Връща 0
$Result = 18 % 8; // Връща 2
$Result = 12 % 4.3; // Връща 3.4
$Result = 47.9 % 9.35; // Връща 1.15
Ако използвате променливи от тип float като операнди за оператора делене по модул, тогава остатъка от делението е съще реален тип.

Оператор за събиране (+)
Оператора за събиране се използва за намиране на сумата на две числа. Синтаксисът на оператора е следният:

$Result = $Variable1 + $Variable2;
Променливите в израза могат да са или числа или низове. Ако използвате чилса, оператора връща сумата на $Variable1 и $Variable1. Ако променливите са низове, оператора връща конкатенцията им.
Когато използвате оператора за събиране, трябва да сте сигурни, че и двета операнда са от един и същи тип.
Разгледайте следващите примери:
$IntValue = 8 + 6; // Връща 14
$IntValue = 348.45 + 5468; // Връща 5816.45
$StrValue = "Hello" + "World"; // Връща Hello World
Ако операндите са цели числа или еални числа, както е в случея с горните два примера, Операторите сумират числата и връщат съответно цяла или реална стойност. В случеите, в които операндите са низове, оператора канкатира двата низа.

Оператори за изваждане (-)
Операторът за изваждане са използва за намиране на разликата на две числа. Синтаксиса на оператора е следния:

$Result = $Num1 - $Num2;
Където $Num1 и $Num2 са числа. Разгледайте следните примери:
$IntResult = 15 - 4; // Връща 11
$IntResult = 756.45 - 325.26; // Връща 431.19

Оператор за присвояване
В момента когато видите оператора =, вероятно го асоциирате с математическото равенство. Въпреки, че това може да е вярно за някой езици за програмиране, в PHP това е оператор за присвояване и се използва за задаване на стойност на променлива.

Например:
$Myvar = 12;
// $Myvar става променлива от целочислен тип и има стойност 12.

$Myvar = World;
// $Myvar става променлива от низов тип и има стойност 'World'.

PHP ви позволява да използвате повече от един оператор за присвояване в един израз. Например:

$Result = ($Num1 = 3) + ($Num2 = 1);
// $Result, $Num1 и $Num2 са целояислени променливи и имат за стойност съответно 4, 3 и 1

В горния пример първо се присвояват стойности на $Num1 и $Num2, след което се изчислява тяхната сума и се присвоява на $Result.
PHP също така поддържа и комбинираните оператори += и .= . Тези оператори не само задават стойност на израза, но и съхраняват резултата от израза. Оператора += се използва за числа, а оператора .= за низове.

Например:
$Num = 3;
$Num+=1; // Увеличава стойността на $Num с 1
echo $Num;
В горния код променливата $Num се инициализира и на следващия ред текущата стойност на $Num се събира с единица и резултатът се присвоява отново на променливата.

$Myvar = "Add";
$Myvar .= " Something"; // $Myvar приема стойност "Add Something"
Горния израз може да се запише и като $Myvar = "Add" . "Something" Операторът .= добавя нова стойност към текущата на $Myvar

Оператор за сравнение
Операторът за сравнение се използва за сравняване на изрази. Можете да проверявате дали стойността на един израз е по-малка или равна на стойността на друг.

Теоретичния оператор ? е условен оператор в PHP. Може би вече сте го използвали за да сравните два израза и да покажете трти израз,ако двата израза имат равни стойности в някой друг програмен език. Синтаксисът е следния:
(expr1) ? (expr2) : (expr3);
където ако изеюраза expr1 има стойност true, то като резултат се връща стойността на променливата expr2, в противен случай стойността на expr3.

Оператори за сравняване
Равенство = = Връща true, ако стойността на първата променлива е равна на втората
Идентичност = = = Връща true, ако стойността на първата променлива е равна на втората и типовете им са еднакви
Неравенство != Връща true, ако стойността на първата променлива не е равна на втората
По-малко < Връща true, ако стойността на първата променлива е по-малка от втората
По-голямо> Връща true, ако стойността на първата променлива е по-голяма от втората
По-малко <= Връща true, ако стойността на първата променлива е по-малка или равна на втората
По-голямо или равно >= Връща true, ако стойността на първата променлива е по-голяма или равна на втората

Да разгледаме един пример за използване на оператори за сравнение
<?
$Num1 = 12.0;
$Num2 = 12;
echo "Num1, " = = ", $Num2, " = = ", $Num1 = = $Num2;
// Връща False

$Num1 = 13;
$Num2 = 12;
echo "Num1, " = = ", $Num2, " = = ", $Num1 = = $Num2;
// Връща True, защото операторът = = не сравнява типовете им, а само стойностите на променливите

$Num1 = 12;
$Num2 = 12;
echo "Num1, " = = ", $Num2, " = = ", $Num1 = = $Num2;
// Връща True
?>

Ето още един пример за използване на операторите за сравняване
<?
$Num1 = 12;
$Num2 = 12.0;
echo $Num1, " !=", $Num2, " = ", $Num1 != $Num2;
// Връща стойност False
?>

Оператор за изпълнение(' ')
В PHP е наличен само един оператор за сравнение и това е операторът (' '). Можете да го използвате, за да изпълните кода, съхранен между апострофите, като скрипт на шела и да присвоите резултата на променлива. Скриптовете на шела са подобни на програмите и се използват за едновременно изпълнение на множество команди. Променливата, в която се съхранява резултатът, се използва за обработка на данните, тъй като резултата не се включва директно в HTML страницата. Можете да образувате резултата и да го покажете в желания формат.
Например

allfiles='ls';
echo"$allfiles";$


В горния пример командата ls на LINUX се изпълнява и резултатът се съхранява в променлива $allfiles. Можете да обработите съдържанието на променливата $allfiles и след това да покажете само конкретни файлове.

Оператори за увеличаване и намаляване на стойност
По-рано видяхте как можете да увеличавате стойности на променлива с помощта на аритметичните оператори. Въпреки че това е стандартния метод, той е предназначен за два различни операнда. В случаите когато имате само един операнд, изразът е ненужно дълъг, тъй като една и съща променлива се повтаря два пъти. Например $Num1 = $Num1 + 1; или $Num1 = $Num1 - 1;. Вместо да използвате аритметичните оператори, можете да използвате операторите + + и - -, които са унарни оператори. При използването на унарни оператори стойността на променливата се увеличава с единица и новата стойност се присвоява отново на същата променлива.

Можете да използвате тези оператори по два начина. Можете или да увеличите стойността на променливата или да я намалите. Стойността, връщана от тези оператори, зависи от това къде сте написали оператора преди или след променливата. Когато операторът " - " е пред променливата, променливата първо се намалява с единица и след това намалената стойност се присвоява на променливата. Ако операторът " - " се намира след променливата първо се взема стойността на променливата и след това се намалява с единица

<?
$Num = 17;
echo "&Num + + :" . &Num + + .; //Текущата стойност е 17
//(Последващо увеличение)
echo " $Num " . $Num .; // Текущата стойност е 18

$Num = 17;
echo "+ + &Num :" . + + &Num .; //Текущата стойност е 18
//(Предварително увеличение)
echo " $Num " . $Num .; // Текущата стойност е 18

$Num = 17;
echo "&Num - - :" . &Num - - .; //Текущата стойност е 17
//(Последващо увеличение)
echo " $Num " . $Num .; // Текущата стойност е 16

$Num = 17;
echo "- - &Num :" . - - &Num .; //Текущата стойност е 16
//(Предварително увеличение)
echo " $Num " . $Num .; // Текущата стойност е 16

В горния пример стойността на променливата $Num първо се увеличава и след това се намалява с помощта на операторите за увеличаване и намаляване. Както може би сте забелязали, когато използвате операторът за последващо увеличаване, текущата стойност на променливата $Num която е 17, първо се визуализира и след това се увеличава. Текущата стойност на променливата $Num е вече 18. Обаче, когато използвате операторът за предварително увеличаване, текущата стойност на променливата $Num се увеличава и след това се визуализира. Поради тази причина стойността 18 се визуализира два пъти. По подобен начин се изпълнява и операторът за намаляване.

Оператори за обработване на низове
В PHP има два оператора за обработване на низове Първият е операторът за конкатенация( . ), Вторият е операторът за конкатенация с присвояване ( .=), който конкатенира израза зададен в дясно, с този зададен в ляво.

Например :
$Myvar1 = "some";
$Myvar2 = "thing";
$concat = $Myvar1 . $Myvar2;
echo $concat; // $concat = = "something"

$Myvar1 = "some";
$Myvar2 .= "thing";
echo $Myvar1; // $Myvar1 = = "something"

$Myvar1 = "24 cats" + 5;
echo $Myvar1; // $Myvar1 = = "29"

$Myvar1 = "24cats" + 5;
echo $Myvar1; // $Myvar1 = = "29"

$Myvar1 = "cats 24" + 5;
echo $Myvar1; // $Myvar1 = = "5"

$Myvar1 = "24 cats" . 5;
echo $Myvar1; // $Myvar1 = = "24 cats5"

$Myvar1 = "24cats" + 5;
echo $Myvar1; // $Myvar1 = = "24cats5"


В горните примери операторите за низове се използват за конкатениране на низове и числа. Както може би сте забелязали, двата низа (some и thing) се комбинират заедно в един низ (something). Обаче, в случаите на конкатенация на низ с число, ако низът започва с цифри, резултатът е сумата от двете числови стойности. Ако цифрите са в средата на низа, се визуализира само числото. Ако използвате операторът за конкатенация, числовите стойности се разглеждат като низове и резултатът е конкатенацията на двата низа.

Сега след като се запознахте с операторите и тяхната употреба за работа с променливите, следва да научите повече за обработката на низовете, като и за промяната на типа на данните на променливите.

Обработка на низове
Трябва да знаете как да обработвате низове, за да можете да работите ефективно със скрипт езиците. Низовете се обработват за да се извлече информацията от HTML страниците. Например, можете динамично да създадете потребителски идентификатор, като извлечете името на потребителя от дадена форма. Езикът PHP предоставя няколко функции за обработка на низове. Нека да разгледаме тези функции и тяхното използване.

Функцията substr
Функцията substr извлича част от низ. Тя има три параметъра - низът, началната позиция и броя символи, които да се извлекат. Началната позиция започва от 0, а параметъра за броя символи не е задължителен. Синтаксисът на функцията substr е следният:

string substr (string низ, int начало [, int дължина)

Ако стойността на параметъра начало е положителна, извличането започва от първия символ на низа. Обаче, ако стойността на начало е отрицателна, началото на извлечения низ се изчислява от края на низа.

Например:
$extract = substr ("Hello",1); // Връща "ello"
$extract = substr ("Hello",1,2); // Връща "el"
$extract = substr ("Hello",-2); // Връща "lo"
$extract = substr ("Hello",-3,2); // Връща "ll"

Ако е зададена дължина на низ и тя е положително число, то се извлича зададения брой символи. Обаче, ако дължината е отрицателно число, то се заемат символите до края на низа минус зададената дължина:
$extract = substr ("Hello",1,-1); // Връща "ell"
$extract = substr ("Hello",2,-2); // Връща "l"

Функцията strstr
Функцията strstr намира първото срещане на даден низ в друг. Функцията връща стойност False, ако низът не е намерен.
При извършването на търсенето се взима предвид регистърът на буквите. Синтаксисът на функцията е следния:

string - strstr(string търсен_низ, string основен низ);

Например:
$content = "Motherboard" ;
$base = strstr ($content, 'b');
echo $base; // Връща 'board'

В горния пример низът $content се претърсва за символа 'b' и когато се открие този символ, се връща низът, започващ от този символ до края на низа.

Функцията str_repleace
Функцията str_repleace претърсва даден низ за всички срещания на друг низ и след това ги заменя с друг низ. В случаите когато дължината на низа за замяна е по-малка от дължината на търсения низ, в края на заместващия низ се поставят интервали. Синтаксисът на функцията е следния:

mixed str_repleace (mixed терсен_низ, mixed заменящ_низ, mixed основен_низ);

Например:
$story = "This is an excellent example of a horror story.";
$retstring = str_repleace ("excellent", "exceptional", $story);

В горния пример се търси низът "excellent" в текста съхранен в променливата $story и след като се открие се заменя с низа "exceptional". Всички срещания на низа биват открити и заменени. След горните два реда съдържанието на променливата $story е "This is an exceptional example of a horror story."

Credit's Uroci.net
 
  • Like
Reactions: bL!nd and t0sh1