Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создание своей фанкции
 
 автор: evgen_17   (04.03.2005 в 15:06)   письмо автору
 
 

Объясните пожалуйста как это сделать, приведите пример...
Простенький какой-нибудь, с объяснением...

   
 
 автор: antf   (04.03.2005 в 16:33)   письмо автору
 
   для: evgen_17   (04.03.2005 в 15:06)
 

1) Поставим цель - создание функции, которая сохраняет в файле ($FileName) определенную строку ($Str) и выводит сообщения об успешном/неуспешном выполнении операции сохранения.

2) Придумаем для нее имя: SaveString (). Имена должны быть не очень длинными (2-3 слова), а также указывать на действие данной функции, поэтому имя удобно начинать с английского глагола (глагол - часть речи, обозначающая действие).

3) Объявим ее:

<?php
function SaveString ($Str$FileName)
{
  
//тело (механизм функции)
}


function - ключевое слово PHP, указывающее на то, что данная конструкция является функцией (обязательно)
SaveString - имя функции обязательно
($Str, $FileName) - параметры функции, т.е. те данные которыми она будет оперировать. Функция может не иметь параметров в таком случае ставятся только круглые скобки ()
{} - в фигурные скобки заключается тело функции (обязательны).

4) Затем нужно создать механизм функции. Наша функция должна открыть файл, записать в нее строку, закрыть файл, вернуть строку с результатом выполнения операции сохранения

<?php
function SaveString ($Str$FileName)
{
  
//тело (механизм функции)
  //открываем файл для чтения
  
$fp = @fopen($FileName'r');
  if(
$fp)  
  {
    
//записываем строку в файл
    
fwrite($fp$Str);
    
//создаем сообещение об успешном сохранении
    
$Mess 'Данные успешно сохранены';
    
//закрываем файл
    
fclose($fp);
  } else
  {
    
$Mess 'Ошибка при записи в файл';
  }
  
//Возвращаем результат выполнения
  
return($Mess);

?>

   
 
 автор: evgen_17   (04.03.2005 в 20:44)   письмо автору
 
   для: antf   (04.03.2005 в 16:33)
 

Спасибо большое! А как насчёт переменных? Если я например объявлю переменныю $Str за пределами тела функции, то она будет ей оперировать или переменные нужно объявлять строго в теле функции? Или например мне нужно чтобы переменные используемые в функции использовались и во всём скрипте, что в таком случае?

   
 
 автор: Crux   (04.03.2005 в 20:49)   письмо автору
 
   для: evgen_17   (04.03.2005 в 20:44)
 

>Если я например объявлю переменныю $Str за пределами тела функции

тогда в функции надо объявить эту переменную как глобальную

global $Str;

   
 
 автор: evgen_17   (04.03.2005 в 20:51)   письмо автору
 
   для: Crux   (04.03.2005 в 20:49)
 

А это на безопасность не влияет??? Спасибо.

   
 
 автор: Crux   (04.03.2005 в 21:08)   письмо автору
 
   для: evgen_17   (04.03.2005 в 20:51)
 

каким образом?!

   
 
 автор: cheops   (04.03.2005 в 23:15)   письмо автору
 
   для: evgen_17   (04.03.2005 в 20:51)
 

Нет на безопасность это прямо не влияет, но использованиен globals считается не совсем хорошим тоном программирования - так как слегка запутывает код. Если есть возможность - страются избегать использования этой директивы.

   
 
 автор: antf   (04.03.2005 в 23:15)   письмо автору
 
   для: evgen_17   (04.03.2005 в 20:44)
 

Есть два выхода:
1) Передавать переменные в качестве параметров (см. Выше). В таком случае они будут видны только в теле функции и нигде больше.
2) Объявлять глобальные переменные в теле функции. Тогда

<?php 
function SaveString () 

  global 
$Str$FileName;
  
//тело (механизм функции) 
  

?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования