Webmaster общности: Predpriemach.com | SearchEngines.bg

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

    php mysql уроци

    Автор: 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.

    Оставете коментар