запрос синтаксиса функции php

#php #function #variables

#php #функция #переменные

Вопрос:

У меня есть функция, которая передает аргумент с двумя значениями по умолчанию…

 function places($location="Minneapolis", $lodging="Mom's house")
{
    echo "enjoys going to {$location} and staying at {$lodging} while on vacation.";
}
places("St. Paul","Grandma's house");
  

Мне нужно передать функцию 10 раз, используя 10 разных имен людей, определенных как переменная, переданная в качестве аргумента. Каким будет синтаксис, предполагающий, что вывод будет похож на это:

Джо любит ездить в Сент-Пол и оставаться в доме бабушки во время отпуска.

Комментарии:

1. Во-первых, я бы рекомендовал вам не использовать an echo внутри вашей функции; вместо этого возвращайте строку или массив созданных строк.

Ответ №1:

Как насчет чего-то подобного?

 $names = explode(',', 'James ,Betsy ,Andrew ,Marvin ,Alicia ,etc... ');

foreach($names as $name)
{
   echo $name, places(), '<br>';
}
  

ДЕМОНСТРАЦИЯ

Комментарии:

1. @hakre — Ну, разберись. Я бы предположил, что каждое имя должно быть собственным членом массива, и аргументы функции не демонстрируются как используемые из массива или любыми другими средствами, если на то пошло.

2. спасибо за правки, ребята — это был не рабочий код, а просто выражение общей концепции. Но, конечно, вы его улучшили.

3. Обычно вы либо хотите предоставить рабочий код, код, помеченный как псевдокод, либо указать какие-либо особые соображения в своем ответе. В противном случае это может сбить с толку того, кто задал вопрос. :)

4. Привет, горная девушка! Хорошо, ваша информация была чрезвычайно полезной. Сейчас я действительно близок, однако, если вам угодно, мне просто нужна дополнительная помощь в sytanx. Вот что у меня есть, и интересно здесь то, что мне нужно сделать, чтобы вывести эти переменные имя, и эхо его <?php $names = array(); $names = («James», «Betsy», «Andrew», «Marvin», «Sara», «Alicia»); for (i=0; i< 10; i ) function places($location=»Minneapolis», $lodging=»Mom’s house») { echo «enjoys going to {$location} and staying at {$lodging} while on vacation.»; } places(«St. Paul»,»Grandma’s house»); ?>

5. Код, который я изначально дал вам, не был рабочим кодом: я просто пытался показать определенную логику. Вам нужно разделить имена в массиве, используя разделитель, (или любой другой разделитель, который вы предпочитаете). Используйте foreach вместо цикла for . В принципе… следуйте изменениям, внесенным в мой код выше.

Ответ №2:

Вы имеете в виду что-то вроде этого?

 function places($location="Minneapolis", $lodging="Mom's house")
{
    echo "enjoys going to {$location} and staying at {$lodging} while on vacation.n";
}

$loc = array(
  array('location'=>'St. Paul1', 'lodging' => 'Grandma's house1'),
  array('location'=>'St. Paul2', 'lodging' => 'Grandma's house2'),
  array('location'=>'St. Paul3', 'lodging' => 'Grandma's house3'),
  array('location'=>'St. Paul4', 'lodging' => 'Grandma's house4'),
  array('location'=>'St. Paul5', 'lodging' => 'Grandma's house5'),
  // etc
);

foreach($loc as $i)
{
  places($i['location'], $i['lodging']);
}
  

Ответ №3:

Смотрите мои комментарии в коде. Вы не сделали $i итератор допустимой переменной PHP, поэтому к вашему сведению: все переменные PHP должны иметь префикс a $ .

 <?php

// You declare your functions typically in the global scope, not
// within a for or any other loop.
// NOTE: $name is a required function parameter in this function.

function places($name, $location="Minneapolis", $lodging="Mom's house") {
    return "$name enjoys going to $location and staying at $lodging while on vacation.";
}

// Note, I've got $people setup to have arrays that can be passed
// containing a "name, city, hotel" syntax. This is equivalent to
//     $people[loop index][0] ~ $people[loop index][name]
//     $people[loop index][1] ~ $people[loop index][city]
//     $people[loop index][2] ~ $people[loop index][hotel]

$people = array(
    array("James", "Brooklyn", "Granada Inn"),
    array("Betsy", "Memphis", "Tennessee Hotel"),
    array("Andrew", "San Francisco", "101 Hotel"),
    array("Marvin", "San Diego", "Oceanview Beach Resort"),
    array("Sara", "Orlando", "Disney World"),
    array("Alicia", "Hilton Head", "Vincent Inn")
);

// Cache the count of the $names array members

$c_people = count($people);

// Loop and echo.

for ($i = 0; $i < $c_people; $i  ) {
    echo places($people[$i][0], $people[$i][1], $people[$i][2]) . "n";
}

?>
  

http://codepad.org/QHh83cKz

ВЫВОДИТ

 James enjoys going to Brooklyn and staying at Granada Inn while on vacation.
Betsy enjoys going to Memphis and staying at Tennessee Hotel while on vacation.
Andrew enjoys going to San Francisco and staying at 101 Hotel while on vacation.
Marvin enjoys going to San Diego and staying at Oceanview Beach Resort while on vacation.
Sara enjoys going to Orlando and staying at Disney World while on vacation.
Alicia enjoys going to Hilton Head and staying at Vincent Inn while on vacation.
  

Комментарии:

1. Привет, Джаред! Да, это здорово. Большое спасибо. Я очень мало знаю PHP и сейчас посещаю пару онлайн-классов. Я знаю, что всегда есть несколько способов кодирования вещей, и это именно то, что я предполагал, чтобы это работало так. Еще раз спасибо!

2. Убедитесь в этом и отметьте его как ответ (щелкнув выделенную галочку рядом с этим ответом) и проголосуйте за. :)

Ответ №4:

Если я правильно прочитал ваш вопрос, то все, что вам нужно, это еще один параметр

 function places($location="Minneapolis", $lodging="Mom's house", $name="Bob")
{
    echo "{$name} enjoys going to {$location} and staying at {$lodging} while on vacation.";
}
places("St. Paul","Grandma's house","Joe");