【问题标题】:CakePHP Unsupported OperandCakePHP 不支持的操作数
【发布时间】:2015-05-29 10:23:40
【问题描述】:

我在 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;
}

【问题讨论】:

  • 我非常怀疑这是 CakePHP 特有的。它看起来像一个基本的 PHP 问题。
  • $submet_mask 很可能无效并且 ip2long 返回 false。然后按位 ~operator 是引发错误的原因。
  • 检查 $nm 和 $nw 中是否有任何空数据。我遇到过这类问题。

标签: php cakephp operand


【解决方案1】:

这不是操作数的问题,而是值传递的问题。确保 $ip_add 和 $subnet_mask 获得的值是 VALID 且不为空。 因为

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

同时返回有效结果

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

返回与您指定的相同的错误

【讨论】:

    猜你喜欢
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多