2015-05-29 77 views
4

我在CakePHP中得到了下面的錯誤,該函數在PHP中正常工作而不是Cake,有沒有人知道爲什麼這不被支持或解決方法?CakePHP不支持的操作數

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; 
} 
+2

我高度懷疑,這是CakePHP的具體

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

返回相同的錯誤。它看起來像一個基本的PHP問題。 – mark

+0

'$ submet_mask'很可能無效,ip2long返回false。然後按位「〜」運算符是拋出錯誤的東西。 – tigrang

+0

檢查任何空的數據是在$ nm和$ nw中出現的。我遇到了這種類型的問題。 – Shaddy

回答

0

這不是操作的問題,而是價值passing.Make確保$ ip_add和$ SUBNET_MASK越來越有效的值,而不是空。 因爲

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

返回有效結果,而當你指定