Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu puxei o item no foreach direto do construct, pois não seria
correto fazer isso ?
ou é desnecessário fazer como public function select() e depois
puxar desse modo foreach($selector->select() as $error)
No meu ver public function select() fica até mais organizado,Esse código é apenas um estudo !
<?php
class Name {
public function __construct($user) {
$this->item = $user;
}
/*public function select() {
return $this->item;
}*/
}
$users = array(
'name' => 'Luiz',
'sobrenome' => 'Almeida'
);
$selector = new Name($users);
foreach($selector->item as $error) {
echo $error, '<br />';
}
?>Conforme eu disse no post é apenas um estudo, onde coloquei qualquer nome
<?php
class Names {
public function __construct($user) {
$this->item = $user;
}
public function select() {
return $this->item;
}
}
$user = array(
'name' => 'Luiz',
'sobrenome' => 'Almeida'
);
$selector = new Name($user);
foreach($selector->select() as $users) {
echo $users, '<br />';
}
?>Como eu comentei, tudo como classe funciona. A forma que vai abordar o problema é uma opção sua. Mas, como orientação à objetos, não faz sentido algum, pois, orientação a objetos tem muito haver com escopo e limites, diferente de apenas programar em classes.
Sua concepção de ter linhas a mais de código está um pouco equivocada. Orientação à objetos se refere a abstração do mundo real e reutilização. O que em prática nos traz clareza ao código.
Há algumas orientações de nomenclatura que se referem ao que o método é e/ou pode fazer (ou não pode fazer).
tais como os prefixos:
Como o PHP é uma linguagem de tipagem fraca, não há como garantir o tipo de retorno através de uma variável pública. Por isso é recomendado o uso de getters/setters. Mas isso somente quando você quer garantir o tipo de um atributo (o que em OO é 99,9% das vezes).
Finalizando, seu código pode funcionar e está funcionando, mas ele não tem fundamento algum. Ele não me diz o que você quer fazer. E um código ser auto explicativo é fundamental.
Para ilustrar melhor, você precisa definir melhor o que quer fazer. Pois há uma classe chamada Name, você está passando um usuário (através de um array) pelo construtor, e retornando ítens como erros.