Написание функции в php - PullRequest
0 голосов
/ 09 января 2012

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

1002 *

Ответы [ 6 ]

3 голосов
/ 09 января 2012

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

$greeting = 'Hello';

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


echo frank($greeting);

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

2 голосов
/ 09 января 2012

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

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

но по какой-то причине это не работает

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

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

<?php
$greeting 'Hello';

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

$greeting = 'Hello';

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

$2nd = 'robson';

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

echo frank()

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

Оператор не завершается символом a;- он все еще может анализировать ОК, но он очень грязный.

Кроме того, функция откровенности не возвращает значение в echo.

1 голос
/ 09 января 2012

Вы должны вернуть строку, так как вы используете свою функцию с 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 голос
/ 09 января 2012

Я вижу, вы хотите, чтобы вы работали, которая будет возвращать что-то строку.Вы можете передать переменную в качестве аргумента.Вещество после оператора return будет тем, что вы получите, вызвав 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 голос
/ 09 января 2012

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

Во-вторых, вы пропустили присвоение переменной $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 голосов
/ 09 января 2012
<?php
$greeting = 'Hello';

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


frank();
?>

Вам нужно УСТАНОВИТЬ переменную, а вам нужны ПОЛУКОЛОНЫ.

...