首页 > 解决方案 > 为什么 PHP_EOL 等于 0?

问题描述

我有由换行符分隔的值。有时可以添加一个空值,导致 2 PHP_EOL。但是某些值(仅数字)可能以 0 结尾(例如 4950)。

我正在使用这段代码:

foreach($myVar as $key => $value) {
    while(substr($value, -1, 1) == PHP_EOL) {
        $value = substr($value, -1, 1);
    }
}

但似乎 PHP_EOL == 0,切断了我的值的最后一个“0”(例如 4950 -> 495)。

试试这个代码来解决这个问题:

if(PHP_EOL == 0) {
    echo "CONV0<br>";
}

if(PHP_EOL == 1) {
    echo "CONV1<br>";
}

在不切断 0 的情况下删除每个 PHP_EOL 的好方法是什么?为什么 PHP_EOL == 0 ?那很奇怪 !

标签: php

解决方案


在不切断 0 的情况下删除每个 PHP_EOL 的好方法是什么?

$value = rtrim($value, PHP_EOL);

请参阅http://php.net/rtrim

至于为什么PHP_EOLequals 0,请参见PHP 类型杂耍,“String” == 0 和 “String” == true


推荐阅读