Вопрос № 68034: Здравствуйте!
Как изменить в функции значение переменной указанной при вызове?
function myfunc($s) {
$s = 222; }
$p =1;
myfunc($p);
echo $p // на экране 222
И ещё, пожалуйста, подскажите как вернуть мас...Вопрос № 68071: Наткнулся на проблемку. Написал базу на тхт-шках в РНР. Нужно на главной вывести число записей (файлов) в папке. Причем для разных префиксов файла (например преф_имя.тхт). Как силами РНР это сделать?...Вопрос № 68147: В файле 1.txt есть какой-то текст, как можно очистить файл средствами Php?...
Вопрос № 68.034
Здравствуйте!
Как изменить в функции значение переменной указанной при вызове?
function myfunc($s) {
$s = 222; }
$p =1;
myfunc($p);
echo $p // на экране 222
И ещё, пожалуйста, подскажите как вернуть массив. Конкретно функция должна вернуть массив, полученный моей функцией из базы данных.
p.s. Вопрос конечно глупый, понимаю. Но я с этим не привык работать, туго соображаю. Там вроде бы какие-то указатели, или ещё чего? На асме и то понятнее.
Отвечает: PVS
Здравствуйте, Талипов А Н!
1)function myfunc(&$s)
&$s - передача ссылки а не значения
2)return $что_угодно;
оператору return все рвно что возвращать. Напишете массив - будет массив.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 21.12.2006, 18:53 Оценка за ответ: 5
Отвечает: Райкин Сергей Александрович
Здравствуйте, Талипов А Н!
Здесь много вариантов, смотря что вы хотите. Вообщето ваш пример выводит 1.
1.
function myfunc($s=222) {
echo $s; }
$p =1;
myfunc($p);
// на экране 1
2
function myfunc($s=222) {
echo $s; }
myfunc();
// на экране 222 (то что по умолчанию)
3
function myfunc($s=222) {
return $s; }
$p =5;
$a=myfunc($p);
echo $a;
// на экране 5 (то что по умолчанию)
2
function myfunc() {
global $s_fun; // делаем переменную s_fun доступною и вне функции
$s_fun[0] = 222;
$s_fun[1] = 5;
$s_fun[2] = 1000; }
myfunc();
echo $s_fun[0];
echo "<br />";
echo $s_fun[1];
echo "<br />";
echo $s_fun[2];
// на экране 222 5 1000
--------- программист должен работать в свое удовольствие
Ответ отправил: Райкин Сергей Александрович (статус: 2-ой класс)
Ответ отправлен: 21.12.2006, 19:00 Оценка за ответ: 5 Комментарий оценки: Оказывается способов целая куча!Хотя что касается простых переменных с сылками удобнее.А за подробности с массивами огромное спасибо!
Отвечает: Anton S Petrov
Здравствуйте, Талипов А Н!
Документацию читать не пробовали ?!
Ответ отправил: Anton S Petrov (статус: 1-ый класс)
Ответ отправлен: 22.12.2006, 05:58 Оценка за ответ: 3 Комментарий оценки: Документацию читал, может не очень внимательно. То что вы предложили знаю это не то.И к сожалению ваш ответ нельзя подогнать под мой вопрос. А потом посмотрите минифорум. PVS добавил к моему примеру один знак, но какой эффект. Именно то что нужно! Кстати вы продублировали часть ответа Райкина.
Вопрос № 68.071
Наткнулся на проблемку. Написал базу на тхт-шках в РНР. Нужно на главной вывести число записей (файлов) в папке. Причем для разных префиксов файла (например преф_имя.тхт). Как силами РНР это сделать?
Отправлен: 21.12.2006, 22:42
Вопрос задал: Atom (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Барков Илья Андреевич
Здравствуйте, Atom!
из мануала:
выведет количество файлов в директории news имя которых начинается с pref
p/s
а это аналог scandir для PHP < 5
if(!function_exists('scandir')){
//scandir только в PHP 5
function scandir($d ,$s=0){
$dh = opendir($d);
while (false !== ($f = readdir($dh)))
$fs[] = $f;
$s?sort($fs):rsort($fs);
return $fs;
}
}
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 22.12.2006, 07:17
Вопрос № 68.147
В файле 1.txt есть какой-то текст, как можно очистить файл средствами Php?
Отправлен: 22.12.2006, 13:44
Вопрос задал: Тимоша (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: PVS
Здравствуйте, Тимоша!
Последовательность
$fp=fopen("1.txt","w");
fclose($fp);
очистит файл и закроет его. Если надо можно сразу же fwrite($fp,"SomeText"); посредине вставить.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 22.12.2006, 13:51 Оценка за ответ: 3
Отвечает: Козлов А. С.
Здравствуйте, Тимоша!
Если Вам нужно просто сделать его пустым, то можно сделать так:
1. При открытие файла указываем режим w или w+. В режиме w создается новый пустой файл, при наличии файла с таким именем - старый удаляется и создается новый. В режиме w+ открывается существующий файл и тут же стирается его содержимое.
2. Использование функции ftruncate(int $f, int $newsize). Эта функция усекает открытый файл $f до размера $newsize.
$f = fopen("file.txt", "r+"); // открыть существующий файл на чтение и запись
ftruncate($f, 0); // очистить содержимое
fseek($f, 0, SEEK_SET); // перейти в начало файла.
--------- Вы доставили мне истинное удовольствие, взвалив на меня собственные проблемы, парни! (М. Фрай).
Ответ отправил: Козлов А. С. (статус: Студент)
Ответ отправлен: 22.12.2006, 13:55 Оценка за ответ: 5 Комментарий оценки: Отличный и понятный ответ!
Отвечает: Arykray
Здравствуйте, Тимоша!
Если вы хотите полностью очистить файл, то почему бы вам ни воспользоваться функцией создания нового пустого файла:
$file = fopen("dir.../1.txt","w");
--------- Чем сложнее задача, тем проще ее не решать.
Ответ отправил: Arykray (статус: 1-ый класс)
Ответ отправлен: 23.12.2006, 12:23