PHP:将变量设置为无穷大

19

我想知道是否可以将变量设置为无穷大,如果不行,最好的解决方法是什么。请看下面的函数:

public function seekValue($value, $column = null, $limit = null) {
  $this->connect('rb');
  $results = array();
  while (!feof($this->_pointer)) {
      $data = explode($this->_config->delimiter(), fgets($this->_pointer, 1024));
      if(!is_null($column)) {
          if ($data[$this->_config->columns($column, "string")->index()] == $value)
              array_push($results, $this->formatRow($data));
      } else {
          if (in_array($value, $data))
              array_push($results, $this->formatRow($data));
      }
  }
  $this->disconnect();
  switch (count($results)) {
      case 0;
          return false;
      case 1;
          return $results[0];
      default;
          return $results;
  }
}

在函数参数列表中,我设置$limit = null,但是后来我想在while循环中使用$limit,像这样:while (!feof($this->_pointer) && count($results) < $limit) ,以防用户决定将整数传递给它。

如果出现这种情况,我可以这样做:

if (!is_int($limit)) {
  $limit = infinity;
}

如果未设置$limit,则执行无限次。

希望这样说得清楚了。


2
无限循环???????这简直是亵渎! - Laurence Burke
@LaurenceBurke 这不是一个无限循环,它有两个条件,我只想让其中一个条件变成无限的。 - George Reith
3个回答

86

仅回答原始问题:

是的,您可以通过赋值 INF 来将变量设置为无穷大。

$x = INF;
var_dump($x > 10000); // bool(true)
var_dump($x - 100); // float(INF)

2
“INF” 正是我所需要的。 - akinuri
有些问题永远得不到真正的答案,这让人非常失望 :) 但是这个问题不是这样,谢谢! - Steve Moretz

2
为什么不适应这个条件呢:
while (!feof($this->_pointer) && ( ($limit === NULL) || (count($results) < $limit)) )

1

为什么不呢...

while (!feof($this->_pointer) && (is_null($limit) || count($results) < $limit))

只有在它不是 null 的时候才会评估 && count($results) < $limit 这个条件。


$limitNULL时,这将失败; 整个表达式将计算为FALSE - jeroen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接