Я пытаюсь выполнить простой метод класса, когда пользователь отправляет свое имя форме, и он возвращает приветственное сообщение для каждого имени в массиве переменных, например "Welcome John", "Welcome Mike" и т.д.
Сделать это как обычную функцию легко:
$arr = array('Mike', 'John', 'Molly', 'Louis');
function Hello($arr) {
if(is_array($arr)) {
foreach($arr as $name) {
echo "Hello $name" . "<br>";
}
} else {
echo "Hello $arr";
}
}
Hello($arr);
Однако я не могу заставить его работать в контексте класса:
$arr = array('Mike', 'John', 'Molly', 'Louis');
class greetUser {
public $current_user;
function __construct($current_user) {
$this->current_user = $current_user;
}
public function returnInfo() {
if(is_array($this->current_user)) {
foreach($this->current_user as $name) {
echo "Welcome, " . $name;
}
} else {
echo "Welcome, " . $this->current_user;
}
}
}
$b = new greetUser(''.$arr.'');
$b->returnInfo();
Я совершил очень глупую ошибку, поскольку пользователи указали, что я связывал переменную, когда это было необязательно!
замените ваш $ b = новый greetUser (''. $ arr. ''); с $ b = new greetUser ($ arr); и он будет работать :)
new greetUser(''.$arr.'');
почему вы пытаетесь объединить две пустые строки в массив. Простоnew greetUser($arr);