Olá galera. Estou estudando PHP através do site http://codeacademy.com/ e estou com uma dúvida em relação a Orientação a Objetos.
Quando eu estudei Orientação a Objetos na faculdade usando Java, aprendi que as propriedades e métodos de um objeto devem ser declarados como privados, porém, eu analisando o código da seguinte página no codeacademy, percebi que o autor usou as propriedades como pública. Isso está certo?
link: http://www.codecademy.com/pt/courses/web-beginner-en-ZQQ64/0/2?curriculum_id=5124ef4c78d510dd89003eb8
Trecho do código fonte:
[code]// The code below creates the class
class Person {
// Creating some properties (variables tied to an object)
//Essas propriedades não deveriam ser ‘private’ ?
public $isAlive = true;
public $firstname;
public $lastname;
public $age;
// Assigning the values
public function __construct($firstname, $lastname, $age) {
$this->firstname = $firstname;
$this->lastname = $lastname;
$this->age = $age;
}
//mais coisas aqui…
}
[/code]
Obrigado desde já pela atenção!
Não é correto. Porém, você deve considerar que a OO só surgiu no PHP na versão 4, com poucos recursos. Na versão 5 é que o suporte aumentou.
Assim, os tutoriais são geralmente destinados a pessoas que vem da cultura de código estruturado.
[quote=ViniGodoy]Não é correto. Porém, você deve considerar que a OO só surgiu no PHP na versão 4, com poucos recursos. Na versão 5 é que o suporte aumentou.
Assim, os tutoriais são geralmente destinados a pessoas que vem da cultura de código estruturado. [/quote]
Ah! Obrigado, Vini. Não sabia dessa história sobre a o suporte do OO no PHP.
Agradeço a atenção!!
Erick, se você seguir pelo PHP, procure usar o Zend Framework…
Abs e bons estudos
E, a julgar pela forma como a classe está, com certeza o direcionamento é 100% para quem vem de PHP estruturado…
<!DOCTYPE html>
<html>
<head>
<title> Introduction to Object-Priented Programming </title>
<link type='text/css' rel='stylesheet' href='style.css'/>
</head>
<body>
<p>
<?php
// The code below creates the class
class Person {
// Creating some properties (variables tied to an object)
public $isAlive = true;
public $firstname;
public $lastname;
public $age;
// Assigning the values
public function __construct($firstname, $lastname, $age) {
$this->firstname = $firstname;
$this->lastname = $lastname;
$this->age = $age;
}
// Creating a method (function tied to an object)
public function greet() {
return "Hello, my name is " . $this->firstname . " " . $this->lastname . ". Nice to meet you! :-)";
}
}
// Creating a new person called "boring 12345", who is 12345 years old ;-)
$me = new Person('boring', '12345', 12345);
// Printing out, what the greet method returns
echo $me->greet();
?>
</p>
</body>
</html>
As boas práticas orientam a separar o código PHP e o HTML em arquivos distintos.
As boas práticas, também, orientam a colocar as classes em arquivos específicos.
[quote=drsmachado]E, a julgar pela forma como a classe está, com certeza o direcionamento é 100% para quem vem de PHP estruturado…
<!DOCTYPE html>
<html>
...
</html>
As boas práticas orientam a separar o código PHP e o HTML em arquivos distintos.
As boas práticas, também, orientam a colocar as classes em arquivos específicos.[/quote]
Sim, bem lembrado!