|
|
|
| Мысль посчитать пробелы $file=file_get_contents('file.txt'); $countw = count( explode(' ',$file) ); но вот результат при этом зачастую вылетает отличимый от визуального подсчета. Как правильно подсчитать? | |
|
|
|
|
|
|
|
для: Giga
(11.08.2007 в 15:12)
| | Вы чувствуете разницу между count() и sizeof() | |
|
|
|
|
|
|
|
для: Futurer
(11.08.2007 в 15:58)
| | Я не чувствую. А вы? | |
|
|
|
|
|
|
|
для: Shiva
(11.08.2007 в 16:36)
| | count(var)
Возвращает количество элементов объекта var, который обычно представляет собой массив. Если это не массив, фунция возвращает 1; если параметр var не установлен, возвращается 0.
sizeof(array)
Возвращает количество элементов массива. Пустые элементы так же учитываются. Эта функция подобна count(), но используется специально для массивов. | |
|
|
|
|
|
|
|
для: Futurer
(11.08.2007 в 17:38)
| | Мануал http://php.ru/manual/function.sizeof.html сообщает,что sizeof - "Alias of count()"
Вы правы, они отличаются значениями, возвращаемыми в случае , если аргумент не массив - это имеет значение при проверке данных. Но обе предназначены "специально для массива", и, если аргумент - массив, ведут себя одинаково. | |
|
|
|
|
|
|
|
для: Shiva
(11.08.2007 в 17:58)
| | count() не предназначался специально для массивов, ибо если на входе строка, то он возвращает количество символов в строке
у меня на столе лежит справочник - изнего и цитировал, да и по опыту знаю
Проверьте:
echo count(array("a","e","q",""));
//и
echo count(array("a","e","q"));
//получите одинаковые значения
//а если
echo sizeof(array("a","e","q",""));
echo sizeof(array("a","e","q"));
//то значения будут отличаться
|
| |
|
|
|
|
|
|
|
для: Futurer
(11.08.2007 в 18:01)
| | Проверьте:
А Вы сами проверяли? Выкиньте справочник. | |
|
|
|
|
|
|
|
для: Unkind
(11.08.2007 в 18:08)
| | Да я ошибся. Но эти функции не идентичны.
Говорю, глюканул. | |
|
|
|
|
|
|
|
для: Futurer
(11.08.2007 в 18:22)
| | Но эти функции не идентичны.
Может быть в старых версиях PHP так было. Но в PHP5 они алиасы и, соответственно, точно идентичны друг другу. | |
|
|
|
|
|
|
|
для: Unkind
(11.08.2007 в 18:23)
| | Но ведь количество элементов объекта и количество элементов массива это разве не разные вещи? Ведь массив это только частный случай. Или я опять не туда? | |
|
|
|
|
|
|
|
для: Futurer
(11.08.2007 в 18:27)
| | Но ведь количество элементов объекта
Какого объекта? Если Вы всё еще про строку, то обе фунции возвратят int(1), т.к. в PHP
<?php
$string = "string";
$array = (array) $string;
print_r($array); //Array ( [0] => string )
?>
|
| |
|
|
|
|
|
|
|
для: Futurer
(11.08.2007 в 18:01)
| | > если на входе строка, то он возвращает количество символов в строке
Дану? | |
|
|
|
|
|
|
|
для: Giga
(11.08.2007 в 15:12)
| | Попробуйте так:
<?php
function filter($element)
{
return (boolean) trim($element);
}
$file=file_get_contents('file.txt');
$countv = count(array_filter(explode(" ", $file), "filter"));
?>
|
| |
|
|
|