Я пытаюсь разобраться, как писать php-функции, поэтому мне не нужно постоянно писать блок кода, у меня есть игра и пыталась написать это, но она не работает для почему-то, может кто-нибудь сказать мне, где я ошибаюсь?
<?php
$greeting 'Hello';
function frank ()
{
$name = 'frank';
$2nd = 'robson';
echo $greeting;
echo $name;
echo $2nd;
}
echo frank()
?>
Вместо того, чтобы повторять внутри вашей функции, вы должны рассмотреть возможность возврата к ней строки. Также предпочитайте передавать параметр вместо использования глобальной области:
$greeting = 'Hello';
function frank ($funcGreetings)
{
$name = 'frank';
$second = 'robson';
//Concat variable together an return them
return $funcGreetings.' '.$name.' '.$second;
}
echo frank($greeting);
Наконец, имя переменной начинается с буквы или подчеркивания, поэтому $2nd
не является допустимым именем.
См. эту ссылку для получения дополнительной информации об именованной переменной
где я ошибаюсь?
Несколько мест.
но он почему-то не работает
Это не сообщение об ошибке - PHP предоставит вам значимые сообщения о вещах, которые он не понимает, если вы правильно настроили его.
Если вы получаете сообщение об ошибке, вы должны включить его в свой вопрос.
<?php
$greeting 'Hello';
Здесь первая ошибка - это приведет к сбою синтаксического анализа. Там должен быть оператор присваивания, например
$greeting = 'Hello';
Следующая ошибка:
$2nd = 'robson';
Имена переменных должны начинаться с символа подчеркивания или буквы - а не числа
echo frank()
2 ошибки здесь.
Заявление не заканчивается символом a; - он все равно может разобрать OK, но очень грязный.
Также функция frank не возвращает значение для эха.
Вы должны вернуть строку, когда используете свою функцию с помощью 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'
(вам не указан знак =
).
Я вижу, вы хотите, чтобы функция, которая вернет что-то строку.
Вы можете передать переменную в качестве аргумента.
Вещи после возвращения будут делать то, что вы получаете, вызывая 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 );
Во-первых, вам нужно передать переменную $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);
<?php
$greeting = 'Hello';
function frank ()
{
global $greeting;
$name = 'frank';
$2nd = 'robson';
echo $greeting;
echo $name;
echo $2nd;
}
frank();
?>
Вам нужно установить переменную, и вам понадобятся SEMICOLONS.