CakePHP Неподдържан операнд

Получавам грешката по-долу в CakePHP, функцията работи добре в PHP, но не и в Cake, някой знае ли защо това не се поддържа или е заобиколно решение?

Error: Unsupported operand types
File: /var/www/spitdev/console2/app/Lib/IpLib.php
Line: 40

Notice: If you want to customize this error message, create app/View/Errors/fatal_error.ctp

функция:

public function lastHost($ip_add, $subnet_mask){
    $ip = ip2long($ip_add);
    $nm = ip2long($subnet_mask);
    $nw = ($ip & $nm);
    $bc = $nw | (~$nm); <------------LINE 40
    $lh = long2ip($bc - 1);
    return $lh;
}

person Steven Marks    schedule 29.05.2015    source източник
comment
Силно се съмнявам, че това е специфично за CakePHP. Изглежда като основен PHP проблем.   -  person mark    schedule 29.05.2015
comment
$submet_mask най-вероятно е невалиден и ip2long връща false. Тогава побитовият ~оператор е това, което хвърля грешката.   -  person tigrang    schedule 30.05.2015
comment
проверете дали идват празни данни в $nm и $nw. Сблъсквал съм се с този тип проблем.   -  person Shaddy    schedule 25.11.2015


Отговори (1)


Това не е проблем на операнд, а на предаване на стойност. Уверете се, че $ip_add и $subnet_mask получават ВАЛИДНИ стойности и не са празни. защото

$test=$this->lastHost('69.89.31.226','255.0.0.0');
var_dump($test);

връща валиден резултат докато

$test_again=$this->lastHost('','');
var_dump($test_again);

връща същата грешка, както сте посочили

person Shashikala    schedule 10.03.2016