Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Свои функции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
ytrewq123
Отправлено: 05 Ноября, 2014 - 20:05:53
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Ещё один вопрос если позволите.
Как сделать чтобы это работало. Именно с функции. Ибо сколько я знаю функция не может взять значение из вне. Но можно это как то сделать или нет.
Если просто то всё работает. Но я хотел бы понять как всё же писать и как работают функции. Буду благодарен за любой совет.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3.  
  4. <html>
  5. <head>
  6.     <title>Page Title</title>
  7.  
  8. </head>
  9.  
  10. <body>
  11. <form action="funkcijas.php" method="post">
  12.     <input type="text" name="as";>
  13.         <input type="submit" value="knopka">
  14. </form>
  15. <?php
  16. include('funkcijas.php');
  17. $a=3;
  18. fu($a);
  19.  
  20.  
  21. ?>
  22.  
  23. </body>
  24. </html>
  25.  
  26.  


PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP function fu($a){
  4. $a=$_POST['as'];
  5. if ($a>5)
  6. {
  7. echo 'NU CHO';
  8.     }
  9. else
  10. {
  11. echo 'NICHo';
  12. }
  13. }?>
  14.  




Просто без функции всё хорошо но хочу С.

CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2.  
  3. <html>
  4. <head>
  5.     <title>Page Title</title>
  6.  
  7. </head>
  8.  
  9. <body>
  10. <form action="funkcijas.php" method="post">
  11.     <input type="text" name="as";>
  12.         <input type="submit" value="knopka">
  13. </form>
  14.  
  15.  
  16. </body>
  17. </html>
  18.  


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a=$_POST['as'];
  3. if ($a>5)
  4. {
  5. echo 'NU CHO';
  6.     }
  7. else
  8. {
  9. echo 'NICHo';
  10. }
  11. ?>
 
 Top
dXdYdZ
Отправлено: 05 Ноября, 2014 - 22:26:37
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




Функцию надо не только объявить, но и вызвать

Кроме этого, параметр, передаваемый в функцию (в данном случае это $a) обычно не переопределяют внутри функции (если он передан не по ссылке). То есть внутри функции

Лучше не выполнять. Использовать функции в данном примере можно, например, так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function fu($a){
  3.   if ($a>5)
  4.     {
  5.     echo 'NU CHO';
  6.     }
  7.   else
  8.     {
  9.     echo 'NICHo';
  10.     }
  11.   }
  12. fu($_POST['as']);
  13. ?>
 
 Top
ytrewq123
Отправлено: 05 Ноября, 2014 - 22:46:27
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Огромное Вам спасибо. Супер. И ещё если можно. Не функция но всё же. Как чтобы он проверил все значения в массиве. А то у меня получается только первый проверять. Спасибо Вам ещё раз большое.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $a=$_POST['as'];
  4. $q = array("q", "a", "z");
  5. //$z= array_values ($q);//
  6. $z=$q[0];
  7. if ($a>5)
  8. {
  9. echo 'NU CHO'.'<br>';
  10.     }
  11.    
  12. elseif($a==$z){
  13.      echo 'HHHHHHHH';}
  14.  
  15. elseif($a<5)
  16. {
  17. echo 'NICHo'.'<br>';
  18. }
  19.  
  20. ?>
  21.  
  22.  
  23.  
 
 Top
dXdYdZ
Отправлено: 05 Ноября, 2014 - 23:09:32
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




Для этого используйте циклы foreach (http://php.net/manual/ru/control...ures.foreach.php )
В Вашем случае получается что-то вроде этого:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a=$_POST['as'];
  3. $q = array("q", "a", "z");
  4. //$z= array_values ($q);//
  5. if ($a>5)
  6.    {
  7.    echo 'NU CHO'.'<br>';
  8.    }
  9. elseif($a<5)
  10.    {
  11.    echo 'NICHo'.'<br>';
  12.    }
  13. else
  14.    foreach($q as $value)
  15.       if($a==$value)
  16.          echo 'HHHHHHHH';
  17.  
  18. ?>

(Отредактировано автором: 05 Ноября, 2014 - 23:09:56)

 
 Top
ytrewq123
Отправлено: 05 Ноября, 2014 - 23:27:16
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Спасибо за помощь. Но что то не работает. Не проверят буквы. И в моём примере я буквы поместил по середине, ибо также не проверял даже одну букву. Всё время выводил значение для этого условия $a<5 и не шёл дальше.
 
 Top
ytrewq123
Отправлено: 06 Ноября, 2014 - 13:03:51
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Ещё вопрос. Ну никак не могу понять. Как подключить функцию, в месте где хотим.
ТУТ Всё в порядке.

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3.  
  4. <html>
  5. <head>
  6.     <title>Page Title</title>
  7.  
  8. </head>
  9.  
  10. <body>
  11.  
  12. <center><iframe name= 'chatWin'  src='funkcijas.php' ></iframe>
  13. <form action="funkcijas.php" method="post" target="chatWin">
  14.     <input type="text" name="as" placeholder='funkcijas.php'>
  15.         <input type="submit" value="knopka" name="poga">
  16. </form>
  17. </center>
  18.  
  19. </body>
  20. </html>
  21.  



PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. if(isset($_POST['poga'])){
  5.  
  6. function fu($a){
  7. if ($a>5)
  8. {
  9. echo "Eto chislo bolshe 5 eto  $a".'<br>';
  10.     }
  11.    
  12. elseif($a<5)
  13. {
  14. echo "Eto chislo  menshe 5=$a".'<br>';
  15. }
  16. }
  17. fu($_POST['as']);}
  18.  
  19. else {echo'Vpishite cifru';}
  20. ?>
  21.  
  22.  
  23.  
  24.  



ТУТ Всё НЕ в порядке. А почему?

CODE (html):
скопировать код в буфер обмена
  1.  
  2.  
  3. <!DOCTYPE html>
  4.  
  5. <html>
  6. <head>
  7.     <title>Page Title</title>
  8.  
  9. </head>
  10.  
  11. <body>
  12.  
  13. <center><iframe name= 'chatWin'  src='funkcijas.php' ></iframe>
  14. <form action="funkcijas.php" method="post" target="chatWin">
  15.     <input type="text" name="as" placeholder='funkcijas.php'>
  16.         <input type="submit" value="knopka" name="poga">
  17. </form>
  18. </center>
  19. <?php
  20. include ('funkcijas.php');
  21. fu($_POST['as']);
  22.  
  23. ?>
  24. </body>
  25. </html>
  26.  
  27.  
  28.  



PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. if(isset($_POST['poga'])){
  5.  
  6. function fu($a){
  7. if ($a>5)
  8. {
  9. echo "Eto chislo bolshe 5 eto  $a".'<br>';
  10.     }
  11.    
  12. elseif($a<5)
  13. {
  14. echo "Eto chislo  menshe 5=$a".'<br>';
  15. }
  16. }
  17. }
  18.  
  19. else {echo'Vpishite cifru';}
  20. ?>
  21.  
  22.  
 
 Top
dXdYdZ
Отправлено: 06 Ноября, 2014 - 15:13:04
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a=$_POST['as'];
  3. $q = array("q", "a", "z");
  4. //$z= array_values ($q);//
  5. if (is_numeric($a)&&($a>5))
  6.    {
  7.    echo 'NU CHO'.'<br>';
  8.    }
  9. elseif(is_numeric($a)&&($a<5))
  10.    {
  11.    echo 'NICHo'.'<br>';
  12.    }
  13. else
  14.    foreach($q as $value)
  15.       if($a==$value)
  16.          echo 'HHHHHHHH';
  17.  
  18. ?>

(Добавление)
По поводу Вашего последнего поста: попробуйте вот так:
Файл func.php:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function prowerka($a)
  3.         {
  4.         $q = array("q", "a", "z");
  5.         //$z= array_values ($q);//
  6.         if (is_numeric($a)&&($a>5))
  7.            {
  8.            echo 'NU CHO'.'<br>';
  9.            }
  10.         elseif(is_numeric($a)&&($a<5))
  11.            {
  12.            echo 'NICHo'.'<br>';
  13.            }
  14.         else
  15.            foreach($q as $value)
  16.                   if($a==$value)
  17.                          echo 'HHHHHHHH';
  18.         }
  19.  
  20. ?>

Файл index2.php:
PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2.  
  3. <html>
  4. <head>
  5.     <title>Page Title</title>
  6.  
  7. </head>
  8.  
  9. <body>
  10.  
  11. <?PHP
  12.         include('func.php');
  13.         if(isset($_POST['poga']))
  14.                 prowerka($_POST['as']);
  15. ?>
  16.  
  17. <form action="index2.php" method="post" target="chatWin">
  18.     <input type="text" name="as">
  19.     <input type="submit" value="knopka" name="poga">
  20. </form>
  21. </center>
  22.  
  23. </body>
  24. </html>

(Добавление)
А использовать iframe в данном случае совсем не нужно. Вообще, iframe следует использовать с осторожностью как минимум из-за проблем с индексацией поисковыми системами.
 
 Top
ytrewq123
Отправлено: 06 Ноября, 2014 - 16:01:57
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Благодарю Вас. Спасибо за уделённое внимание. Действительно сейчас всё работает.
Это в данном случае получается из формы идёт инфо. На эту же страницу где начинается функция и идёт дальше. Спасибо Вам. Если позволите. Одна просьба напишите если можете какие либо совсем простые примеры или скажите где посмотреть подключения функций в нужных местах. Спасибо Вам ещё раз.
P.S. К сожалению не могу нажать на кнопочку спасибо. Ибо ещё не имею таких прав.
Спасибо.
(Добавление)
dXdYdZ «А использовать iframe в данном случае совсем не нужно. Вообще, iframe следует использовать с осторожностью как минимум из-за проблем с индексацией поисковыми системами.»

Понимаете я бы с удовольствием воспользовался ДИВом но ни как не могу засунуть туда информацию после нажатия кнопки. Я понимаю что можно просто выводить саму надпись позиционируя и преображая по желанию. Но другой раз надо В ДИВ и я ни как не могу И вот тут я пытаюсь понять…
http://forum.php.su/topic.php?fo...73369#1415273369

И в этом примере что Вы мне помогли понять, так же открывается другая страница. Почему?
 
 Top
dXdYdZ
Отправлено: 06 Ноября, 2014 - 16:16:04
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




ytrewq123 пишет:
И в этом примере что Вы мне помогли понять, так же открывается другая страница. Почему?

А Вам надо, чтобы было на той же странице? Чтобы после нажатия кнопки новая не открывалась? Я имею в виду без перезагрузки страницы? Чтобы перезагружалось только содержимое div-а?
(Добавление)
В примере, который я дал Вам, страница действительно перезагружается, по новая не открывается. Всё происходит на одной странице index2.php

(Отредактировано автором: 06 Ноября, 2014 - 16:18:02)

 
 Top
ytrewq123
Отправлено: 06 Ноября, 2014 - 16:48:04
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




У меня в Вашем примере получается так. после того как открывается страница. Я пишу цифру жму и результат на другой вместе с формой. Я пишу в этой другой. И действительно всё происходит здесь же.
Большое Вам спасибо не буду Вас больше утомлять. Спасибо Вы действительно мне помогли. Если только можно. Если можете какие либо совсем простые примеры или скажите где посмотреть подключения функций в нужных местах.
Спасибо. Буду рыть, грызть дальше. Имею ещё тонну вопросов.
 
 Top
dXdYdZ
Отправлено: 06 Ноября, 2014 - 17:18:56
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




ytrewq123 пишет:
Если можете какие либо совсем простые примеры или скажите где посмотреть подключения функций в нужных местах.

Собственно говоря, работа с пользовательскими (определёнными пользователем) функциями состоит из 2-х частей:
1) Объявление функции
Это, что-то вроде этого:
PHP:
скопировать код в буфер обмена
  1. function plus($a,$b)
  2.    {
  3.    return $a+$b;
  4.    }
  5.  

В скобках указываются параметры, передаваемые в функцию.
2) Вызов функции
например,

Объявление и вызов функции могут находиться в разных файлах. Однако, в таком случае, до вызова функции надо подключить файл с её объявлением.

(Отредактировано автором: 06 Ноября, 2014 - 17:39:25)

 
 Top
ytrewq123
Отправлено: 06 Ноября, 2014 - 17:31:16
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




То есть, написав эту строку $summa=plus(10,20);
В любом месте будет вызвана данная функция и покажет результат 30.
Или надо ещё подключится к файлу где она написана?
То есть
<php
include(fail.php);
$summa=plus(10,20);
?>
Или подключение не обязательно и они сами найдут друг друга?
 
 Top
dXdYdZ
Отправлено: 06 Ноября, 2014 - 17:40:42
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




Если функция суммы определена в отдельном файле, то, конечно же, до её использования надо подключить этот файл.
 
 Top
ytrewq123
Отправлено: 06 Ноября, 2014 - 18:35:46
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Я очень извиняюсь, но ещё один вопросик.
Когда мы подключаем. Видно всё что в этом файле. А не только функция, не подскажите как отображать из подключенного файла только нужную информацию. Здесь, например только результат функции.
Вот пример.

CODE (html):
скопировать код в буфер обмена
  1.  
  2.  
  3. <!DOCTYPE html>
  4.  
  5. <html>
  6. <head>
  7.     <title>Page Title</title>
  8.  
  9. </head>
  10.  
  11. <body>
  12.  
  13. <?php
  14. include('funkcija.php');
  15. fu();
  16.  
  17. ?>
  18. </body>
  19. </html>
  20.  
  21.  



PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function fu(){
  4. echo 'Nu da';
  5. }
  6. echo' Konecho NET'.'<br>'.'<br>';
  7.  
  8. ?>
  9.  
 
 Top
dXdYdZ
Отправлено: 06 Ноября, 2014 - 18:55:33
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




ytrewq123 пишет:
Я очень извиняюсь, но ещё один вопросик.
Когда мы подключаем. Видно всё что в этом файле. А не только функция, не подскажите как отображать из подключенного файла только нужную информацию. Здесь, например только результат функции.
Вот пример.

Для этого надо убрать из файла код
PHP:
скопировать код в буфер обмена
  1. echo' Konecho NET'.'<br>'.'<br>';

либо поместить его в отдельную функцию.
(Добавление)
Либо, в крайнем случае, использовать условие.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB