Написание функции в php

0

Я пытаюсь разобраться, как писать php-функции, поэтому мне не нужно постоянно писать блок кода, у меня есть игра и пыталась написать это, но она не работает для почему-то, может кто-нибудь сказать мне, где я ошибаюсь?

<?php
$greeting 'Hello';

function frank ()
{
$name = 'frank';
$2nd = 'robson';
echo $greeting;
echo $name;
echo $2nd;
}


echo frank()
?>
Теги:
function
echo

6 ответов

3
Лучший ответ

Вместо того, чтобы повторять внутри вашей функции, вы должны рассмотреть возможность возврата к ней строки. Также предпочитайте передавать параметр вместо использования глобальной области:

$greeting = 'Hello';

function frank ($funcGreetings)
{
    $name   = 'frank';
    $second = 'robson';
    //Concat variable together an return them
    return $funcGreetings.' '.$name.' '.$second;
}


echo frank($greeting);

Наконец, имя переменной начинается с буквы или подчеркивания, поэтому $2nd не является допустимым именем.
См. эту ссылку для получения дополнительной информации об именованной переменной

2

где я ошибаюсь?

Несколько мест.

но он почему-то не работает

Это не сообщение об ошибке - PHP предоставит вам значимые сообщения о вещах, которые он не понимает, если вы правильно настроили его.

Если вы получаете сообщение об ошибке, вы должны включить его в свой вопрос.

<?php
$greeting 'Hello';

Здесь первая ошибка - это приведет к сбою синтаксического анализа. Там должен быть оператор присваивания, например

$greeting = 'Hello';

Следующая ошибка:

$2nd = 'robson';

Имена переменных должны начинаться с символа подчеркивания или буквы - а не числа

echo frank()

2 ошибки здесь.

Заявление не заканчивается символом a; - он все равно может разобрать OK, но очень грязный.

Также функция frank не возвращает значение для эха.

1

Вы должны вернуть строку, когда используете свою функцию с помощью echo

Итак, сделайте что-нибудь вроде этого

//this is inside frank
$ret = $greeting.$name.$2nd;
return $ret;

Во-вторых, $greeting - это переменная, объявленная вне определения функции. Таким образом, вы не должны использовать его внутри определения функции.

Теперь вы будете выглядеть так:

function frank ()
{
$greeting = 'hello';
$name = 'frank';
$2nd = 'robson';
$ret = $greeting.$name.$2nd;
return $ret;
}

Кроме того, в первой строке есть ошибка. $greeting 'Hello' неверно. Он должен быть $greeting = 'Hello' (вам не указан знак =).

1

Я вижу, вы хотите, чтобы функция, которая вернет что-то строку. Вы можете передать переменную в качестве аргумента. Вещи после возвращения будут делать то, что вы получаете, вызывая frank()

$greeting = 'Hello';
function frank ( $greeting) {
    $name = 'frank';
    $second = 'robson';
    return  $greeting." ".$name." ".$second;
}

echo frank ( $greeting );  

Или, если вы хотите использовать глобальную переменную в функции, вы должны ее объявить оператором global

$greeting = 'Hello';
function frank ( $greeting) {
        global $greeting;
        $name = 'frank';
        $second = 'robson';
        return  $greeting." ".$name." ".$second; // 
    }
echo frank ( $greeting );  
1

Во-первых, вам нужно передать переменную $greeting для того, чтобы она находилась в области функций - см. руководство PHP для переменной области. Лучше избегать использования global, поскольку их сложнее отлаживать и тестировать.

Во-вторых, вы упустили назначение для переменной $greeting.

В-третьих, вы забыли вернуть значение из функции, чтобы она могла быть echo d out. См. руководство по PHP для функций.

В-четвертых, $2nd не является допустимым именем переменной. Переменные должны начинаться с буквы. См. соответствующую страницу руководства.

$greeting = 'Hello';

function frank ($greeting) {
    $return = '';
    $name = 'frank';
    $second = 'robson';
    $return .= $greeting;
    $return .= $name;
    $return .= $second;
    return $return;
}

echo frank($greeting);
  • 0
    Объясните отрицательный ответ, пожалуйста. Это совершенно хороший ответ на вопрос.
  • 0
    Привет, это передача $ приветствия в функцию?, Меня тоже смущает то, как передать что-то определенное вне функции в функцию, так что если внутри функции у меня есть $ a + $ b, и вне функции $ a = 2 и $ b = 2, как мне передать их для использования внутри переменной?
Показать ещё 1 комментарий
0
<?php
$greeting = 'Hello';

function frank ()
{
  global $greeting;
  $name = 'frank';
  $2nd = 'robson';
  echo $greeting;
  echo $name;
  echo $2nd;
}


frank();
?>

Вам нужно установить переменную, и вам понадобятся SEMICOLONS.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню