dúvida sobre Programação Orientada a Objetos (PHP)

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… :wink:

Abs e bons estudos :wink:

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!