PHP оператори (advanced)

Автор: alex3
Здравейте, в урока ще видите някой по-особени оператори в PHP.
В урока няма да се обясняват оператори като && || == => (в сайта има урок за тях Операторите в PHP) и за класове :: ->, урока е за малко по-напредналите.
Може би сте запознати с някой от тях, но все пак не е лошо да ги погледнете пак.
Оператора .= е за добавяне на новата стойност на дадена променлива, като се запазва старата стойност.
Пример:
$a = 'Hello ';
$a .= ' world!';
echo $a; // Hello world!Същото е като
$a = 'Hello ';
$a = $a . ' world!';=== е за сравняване на точно едни и същи стойности.
Ако например имаме
$a = true;
$b = 1;и използваме ($a == $b) резултата ще е true, но при === резултата ще е false, защото не са еднакви.
Трябва
$a = true;
$b = true;за да стане номера.При ==, резултати като 1, „text“ се считат за true, но при === само еднаквите са true.
Примери:
$a = true;
$b = (bool) 1;
if($a === $b)
{
echo true;
}Резултата е true защото (bool) преобразува 1 в true.
<>
е същото като != (не е равно на) и !== (е обратното на === (вж. по горе))
Попринцип по правилно е да се ползва <>.
$a = true;
$b = false;
if($a <> $b)
{
echo true;
}Резултата е true, защото (bool) превръща променливата в true.
@ е оператор за предотвратяване на грешки.
echo file_get_contents('/no/such/path'); // грешка
echo @file_get_contents('/no/such/path'); // нищо&= е оператор за сравняване и се използва като алтернатива на &&.
Както знаем && е оператор за И ($a и $b) са true.
$a = true;
$b = true;
if($a && $b)
{
echo true;
}Резултата е true.
Чрез &= става така
if($a &= $b)
{
echo true;
}Резултата пак е true;
Ето и друг пример;
$a = true;
$b = false;
$c = $a &= $b == false;
if($c)
{
echo true;
}Пак true;
=& е оператор за правене на връзка (reference) (най-просто казано) м/у 2 оператора.
Когато едната променлива си смени стойността и другата я сменя.
Пример:
$a = 'Hello World';
$a =& $b;
$b = 'New Hello World';
echo $a; // Резултата е New Hello World$$ се нарича променлива променлива и се използва чрез стойността на дадена променлива.
Ето пример, за да разберете най-добре.
$a = 'Hello';
$Hello = ' world';
echo "$a {$$a}";Резултата е Hello world.
$$a взима стойността от $a и я прилага на следваща променлива.
Същото е като
$a = 'Hello';
$Hello = ' world';
echo "$a {$Hello}"; // или $a . $HelloТака може да се ползва до безкраен брой пъти $$$$$$$$..
$function() е променлива функция.Подобно на $$, чрез съдържанието на променливата се взима функцията.
$a = '__construct';
echo $a();Резултата е Fatal error: Call to undefined function __construct() ..
: е алтернативен начин за IF.
Ползва се за if, switch, while, for, foreach, declare.
if(true):
//
endif;
while(1 = 1):
//
endwhile;?: се използва за така наречение inline-if (IF на един ред) и се записва още в променливата или директно връща резултат (echo (true) ? ‘true’ : “;).
Синтаксиса му е (ако) ? ако да : ако не;
Пример:
$a = true;
$b = false;
$c = ($a <> $b) ? true : false;$c е равно на true, защото $a е различно от $b.
^ е оператор за сравнение на оператори който са записани (isset), но не и едновременно с един и същ резултат (true или false).
Пример:
$a = true;
$b = true;
if($a ^ $b)
{
echo "OK1"; // Result null, понеже и 2та са еднакви
}
if($a ^ $b == false)
{
echo "OK2"; // Result OK2
}!! е оператор като (bool), връща: всички низове и числа над 1 като true и всички празни места, числа под 1 и null като false.
echo !! 'dsadasad'; // true
echo !! null; // false
echo !! -1; // false
echo !! 432243; // true~ е оператор, при който записаните неща от дадена променлива $а не са записани в дадената променлива ~ $a.Вижте примера.
E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICEВсички грешки, освен strict, warnings и notice.
` е оператор, който се опитва да изпълни shell команда (като shell_exec()).
Eтo готов пример от PHP.net
$output = `ls -al`;
echo "<pre>$output</pre>";<?= е съкратен таг за изписване на нещо.Същото е като <?php echo
<?= 'asd'; ?>Резултата е asd (<?php echo ‘asd’; ?>)
<% и <%= са същите като <?php и <?=
Ето един полезен линк с още оператори и по-добро обяснение: http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php
Ако имате въпроси пишете в коментарите или във форума на WT.


