O PHP é orientado a objectos?

o PHP é uma linguagem orientada a objectos? Se não, então e o framework CakePHP? É uma implementação MVC orientada a objetos do PHP?

também, uma aplicação PHP totalmente construída usando classes pode ser chamada orientada a objectos ?

Author: Archy Wilhes 魏何, 2011-01-15

8 answers

Sim, as últimas versões do PHP são orientadas a objectos. Ou seja, você pode escrever classes você mesmo, usar herança, e quando apropriado, a funcionalidade incorporada é construída em objetos também (como recursos MySQL).

Ainda há um monte de funções soltas no entanto, então pode haver um desacordo sobre como o PHP Orientado a objeto é. Acho que é. E sim CakePHP é uma estrutura orientada a objetos.

 38
Author: GolezTrol, 2011-01-15 12:19:41

Não, PHP não é uma linguagem totalmente orientada a objetos.

E nem o C++ Nem o Java, porque todos eles têm tipos primitivos (e o PHP também tem uma enorme coleção de funções como str_replace() e is_*(), que são claramente procedimentais na natureza). Somente linguagem pura orientada a objetos, que eu sei, são Ruby e Scala (e pode-se argumentar que este último é mais visando ao paradigma de programação funcional).

O PHP é, o que se pode chamar, "capaz de objectos" idioma".

Quanto ao código escrito em PHP, você tem que entender que só porque você está usando classes, ele não o torna OOP. Especialmente se o seu código é baseado na classe estática.

Então, se você perguntar: "CakePHP é um quadro OO?", então a resposta é - NÃO . A descrição mais lisonjeira para ele seria "programação orientada a classe" . A base de código é preenchida com métodos estáticos e variáveis, onde a classe age mais como um espaço de nomes. Basicamente CakePHP é um código processual, envolto em sintaxe, que na superfície imita o código orientado a objetos.
 90
Author: tereško, 2017-11-23 18:26:47

O PHP não é totalmente orientado a objectos, mas suporta alguma funcionalidade como

1) classe
2) object
3) construtores e destruidores
4) Object Inheritance
5) Operador De Resolução De Âmbito De Aplicação (::)

E muitos mais. Se quiser aprender PHP Orientado a objectos, consulte a ligação de referência abaixo

1) http://php.net/manual/en/language.oop5.php

 2
Author: Sandeep Shirsat, 2013-01-01 19:18:45

Para qualquer linguagem ser classificada como Objecto orientado, precisa de aderir a pelo menos 3 princípios de OO: herança, polimorfismo e encapsulação. Eu não sei PHP e eu nunca o usei antes, mas se pelo menos atender a estes 3 princípios então é OO de outra forma não é. Minha sugestão é procurar como o PHP suporta, ou não, cada princípio. Os desenvolvedores tendem a ser excessivamente apegados à linguagem que atualmente usam e muitas vezes são mal orientados e tendenciosos. Tomemos, por exemplo, o pessoa afirmando que C++ não é um objeto de programação orient e ainda receber muitos polegares para cima! Esta pessoa não poderia estar mais longe da verdade, mas sua resposta parece estar correta para muitos!

Então fiz um pouco de pesquisa e parece que o PHP5 apoia estes três princípios!
 2
Author: WhiteWabbit, 2013-08-19 01:04:29
Pergunta Interessante. Mas "Não", PHP é uma linguagem capaz de objetos não orientada a objetos, Sim, mas CakePHP é uma estrutura orientada a objetos.
 2
Author: Piyush, 2015-06-08 19:16:39

A tecnologia orientada para objectos é frequentemente descrita em Termos de [[5]}encapsulação, polimorfismo e herança . Mas isto é apenas identidade. Para que a tecnologia orientada a objectos seja bem sucedida ela deve enfatizar o objeto.

Objectos -- pacote contendo dados e procedimentos

Métodos -- deliver service

Mensagem -- request to execute a method

Classe -- template for creating objectos

Instância -- um objecto que pertence a uma classe

Encapsulamento -- informação escondida suportada por objectos

Herança -- mecanismo que permite a reutilização das especificações da classe

Hierarquia de classes -- Estrutura em árvore que representa as relações hereditárias

Polimorfismo -- para esconder diferentes implementações por detrás de uma interface comum

[Alan Kays][4]["Considered by some to be the father of object-oriented programming"] Desfinização:

  1. Tudo é um objecto.

  2. Os objectos comunicam através do envio e recepção de mensagens (em termos de objectos).

  3. Os objetos têm sua própria memória (em termos de objetos).

  4. Cada objeto é uma instância de uma classe (que deve ser um objeto).

  5. A classe mantém o comportamento compartilhado para suas instâncias (na forma de objetos em uma lista de Programas)

An object is defined by a triple (OID, type constructor, state) where OID is the unique object identifier, type constructor is its type (such as atom, tuple, set, list, array, bag, etc.) and state is its actual value.

Agora claramente que pode ser visto Java, C++ e PHP viola a regra 1?Por que bcoz int, float etc. (there are a total of eight primitive types). de modo que não pode ser orientado a objeto em sentido estrito, mas algumas pessoas o consideram como OOP.
 2
Author: Linus, 2016-01-27 08:38:58

Você vai encontrar todas as últimas funcionalidades do OOP em PHP da versão 5. Antes de PHP v5, havia PHP v4, que não era totalmente orientado a objetos.

Também irá encontrar muitos quadros novos e avançados, como o seguinte: -

Estes quadros têm algumas grandes características e são realmente poderosos em verdadeiro sentido, e alguns também são programadores-amigáveis.

Alguns pontos notáveis:
  • O PHP V5 ainda não suporta herança múltipla.
  • O PHP V5 ainda suporta a forma processual de codificação, por isso ainda é compatível para sites mais antigos (que tinham sido desenvolvidos de forma processual usando o PHP v4).
Espero que ajude.
 0
Author: Knowledge Craving, 2011-01-15 12:30:36

O PHP é orientado a objectos. CakePHP é um framework MVC orientado a objetos. Uma aplicação PHP construída usando classes pode ser chamada orientada a objetos.

 -1
Author: Stefan H Singer, 2011-01-15 12:17:28