
{"id":337,"date":"2018-01-17T16:04:12","date_gmt":"2018-01-17T18:04:12","guid":{"rendered":"http:\/\/eliezerladeira.com.br\/blog\/?p=337"},"modified":"2018-08-30T22:17:52","modified_gmt":"2018-08-31T01:17:52","slug":"php-5-construtores-e-destrutores","status":"publish","type":"post","link":"https:\/\/eliezerladeira.com.br\/blog\/php-5-construtores-e-destrutores\/","title":{"rendered":"PHP 5 &#8211; Construtores e Destrutores"},"content":{"rendered":"<p>[ratings]<\/p>\n<p><strong>M\u00c9TODO CONSTRUTOR<\/strong><\/p>\n<p>Na vers\u00e3o 4\u00a0do PHP geralmente d\u00e1-se um mesmo nome da classe para um m\u00e9todo fazendo com que ele seja executado quando o instanciamos.<\/p>\n<div class=\"article\">\n<p>Para quem n\u00e3o entendeu imagine a seguinte situa\u00e7\u00e3o:<\/p>\n<p>Iremos construir uma pequena classe chamada &#8220;Pao&#8221;.<\/p>\n<pre>&lt;?php\r\nClass Pao {\r\n   \/**\r\n   * adiciona itens ao nosso pao\r\n   *\/\r\n   var $_addItem;\r\n   \/**\r\n   * este pao() seria o nosso m\u00e9todo construtor\r\n   * Nota: uma fun\u00e7\u00e3o dentro de uma classe recebe o nome de m\u00e9todo.\r\n   \/*\r\n\r\n   function Pao()\r\n   {\r\n      $this-&gt;add_item = \"manteiga\";\r\n   }\r\n}\r\n?&gt;<\/pre>\n<p>Como\u00a0vimos no c\u00f3digo acima, temos a classe Pao e o m\u00e9todo Pao. Ao dar o mesmo nome da classe ao m\u00e9todo, automaticamente temos um delicioso p\u00e3o com manteiga.<\/p>\n<p>E quando isso acontece ?<\/p>\n<p>Quando temos uma por\u00e7\u00e3o de c\u00f3digo parecida com a que segue:<\/p>\n<pre>&lt;?php\r\n   $objeto = new Pao();\r\n?&gt;\r\n<\/pre>\n<p>No Zend Engine 2 h\u00e1 um m\u00e9todo para fazer isso tudo, sendo assim, n\u00e3o h\u00e1 a necessidade de se colocar um m\u00e9todo com o mesmo nome da fun\u00e7\u00e3o.<\/p>\n<p>Nosso mais novo amigo se chama __construct()<\/p>\n<p>Imaginemos agora uma outra classe chamada &#8220;casa&#8221; e vamos ver qual a diferen\u00e7a do c\u00f3digo passado acima.<\/p>\n<pre>&lt;?php\r\n\r\nClass Casa {\r\n    \/**\r\n     * Define itens para a nossa casa\r\n     *\/\r\n    var item;\r\n\r\n    \/**\r\n     *  Esta \u00e9 a forma de um m\u00e9todo construtor\r\n     *  no PHP5.\r\n     *\/\r\n    function __construct() \r\n    {\r\n        $this-&gt;item = \"paredes\";\r\n    }\r\n}\r\n\r\n?&gt;\r\n<\/pre>\n<p>e ent\u00e3o ao instanciar a nossa classe<\/p>\n<pre>&lt;?php\r\n     $home_sweet_home = new Casa();\r\n?&gt;\r\n<\/pre>\n<p>ele chama este m\u00e9todo e j\u00e1 adiciona paredes.<\/p>\n<p><strong>M\u00c9TODO DESTRUTOR<\/strong><\/p>\n<p>O\u00a0PHP 5 tamb\u00e9m traz um outro m\u00e9todo chamado m\u00e9todo destrutor representado da seguinte maneira<\/p>\n<p>__destruct()<\/p>\n<p>Seu uso pode ser observado no seguinte exemplo:<\/p>\n<pre>&lt;?php\r\n\r\nClass SerHumano {\r\n\r\n    var $variable;\r\n    var $add_body;\r\n    \/**\r\n     * M\u00e9todo construtor \r\n     *\/\r\n    function __construct()\r\n    {\r\n         $this-&gt;variable = \"do anything\";\r\n    }\r\n\r\n    \/**\r\n     * M\u00e9todo que cria o corpo...\r\n     *  \r\n     *\/\r\n    function make_body($part)\r\n    {\r\n         $this-&gt;add_body = $part;\r\n    }\r\n \r\n    function __destruct()\r\n    {\r\n         echo \"eu sou um m\u00e9todo destrutor\";\r\n    }\r\n}\r\n\r\n?&gt;\r\n<\/pre>\n<p>Um simples uso disso seria:<\/p>\n<pre>$myself  = new SerHumano();\r\n$myself-&gt;make_body(\"cabe\u00e7a\");\r\n$myself-&gt;make_body(\"p\u00e9\");\r\n<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>[ratings] M\u00c9TODO CONSTRUTOR Na vers\u00e3o 4\u00a0do PHP geralmente d\u00e1-se um mesmo nome da classe para um m\u00e9todo fazendo com que<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[15],"tags":[82,51],"class_list":["post-337","post","type-post","status-publish","format-standard","hentry","category-informatica","tag-php","tag-programacao"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":317,"url":"https:\/\/eliezerladeira.com.br\/blog\/manipulacao-de-dados-via-php-firebird\/","url_meta":{"origin":337,"position":0},"title":"Manipula\u00e7\u00e3o de dados via PHP + Firebird","author":"admin","date":"","format":false,"excerpt":"[ratings] O PHP\u00a0\u00e9 uma linguagem com suporte nativo a diversos bancos de dados. Como estamos trabalhando com InterBase\/Firebird, segue um exemplo pr\u00e1tico de como a coisa funciona. Este exemplo foi testado com um servidor Windows 2000 e Firebird 1.0. A princ\u00edpio\u00a0voc\u00ea ter\u00e1 que ter instalado em seu computador o servidor\u2026","rel":"","context":"Em &quot;Inform\u00e1tica&quot;","block_context":{"text":"Inform\u00e1tica","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/informatica\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":339,"url":"https:\/\/eliezerladeira.com.br\/blog\/variaveis-variaveis\/","url_meta":{"origin":337,"position":1},"title":"Vari\u00e1veis Vari\u00e1veis","author":"admin","date":"","format":false,"excerpt":"[ratings] Neste post mostrarei uma r\u00e1pida maneira de como criar sisteminhas que geram automa\u00a0automaticamente combos de HTML e como us\u00e1-los de maneira produtiva para uma exclus\u00e3o, por exemplo. Para se fazer isso, usa-se o conceito de uma vari\u00e1vel que n\u00e3o somente cont\u00e9m um valor que h\u00e1 distin\u00e7\u00e3o, que \u00e9 o\u2026","rel":"","context":"Em &quot;Inform\u00e1tica&quot;","block_context":{"text":"Inform\u00e1tica","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/informatica\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":312,"url":"https:\/\/eliezerladeira.com.br\/blog\/iniciando-com-php-e-interbase\/","url_meta":{"origin":337,"position":2},"title":"Iniciando com PHP e InterBase","author":"admin","date":"","format":false,"excerpt":"[ratings] O InterBase existe desde meados de 1980. Depois de v\u00e1rios anos na estrada, ele se tornou Open Source pela Borland em Julho de 2000. A vers\u00e3o que vou utilizar \u00e9 a 6.01 (= 6.0 + patch de seguran\u00e7a). Ela roda no Linux, v\u00e1rios derivados de Unix e no Windows.\u2026","rel":"","context":"Em &quot;Inform\u00e1tica&quot;","block_context":{"text":"Inform\u00e1tica","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/informatica\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2783,"url":"https:\/\/eliezerladeira.com.br\/blog\/como-criar-um-widget\/","url_meta":{"origin":337,"position":3},"title":"Como criar um\u00a0widget","author":"admin","date":"","format":false,"excerpt":"Produza seu pr\u00f3prio widget\u00a0e exporte seu feed RSS para outros sites e blogs. Os widgets\u00a0est\u00e3o no auge de sua popularidade. Com eles \u00e9 poss\u00edvel adicionar not\u00edcias, miniaplicativos, joguinhos e outros trecos digitais a qualquer blog ou site pessoal. Parece complicado de fazer, mas, em termos de programa\u00e7\u00e3o, um widget \u00e9\u2026","rel":"","context":"Em &quot;Programa\u00e7\u00e3o&quot;","block_context":{"text":"Programa\u00e7\u00e3o","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/tecnologia\/programacao\/"},"img":{"alt_text":"266_widget2","src":"https:\/\/i0.wp.com\/netsysoft.wordpress.com\/wp-content\/uploads\/2009\/01\/266_widget2.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":4660,"url":"https:\/\/eliezerladeira.com.br\/blog\/quantos-programadores-sao-necessarios-para-trocar-uma-lampada\/","url_meta":{"origin":337,"position":4},"title":"Quantos programadores s\u00e3o necess\u00e1rios para trocar uma\u00a0l\u00e2mpada?","author":"admin","date":"","format":false,"excerpt":"Resposta curta:\u00a0Nenhum, trocar lampadas \u00e9 um problema de hardware. Resposta longa Programadores da Microsoft: Nenhum. Se a l\u00e2mpada estiver queimada, a microsoft vai\u00a0declarar isso um novo padr\u00e3o. Programadores do Google: Nenhum, porque acreditam que l\u00e2mpada \u00e9 coisa do passado. E desenvolvem o GSunLight. Programadores C: 6. 1 para troc\u00e1-la e\u2026","rel":"","context":"Em &quot;Inform\u00e1tica&quot;","block_context":{"text":"Inform\u00e1tica","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/informatica\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3594,"url":"https:\/\/eliezerladeira.com.br\/blog\/ado-localizando-informacoes\/","url_meta":{"origin":337,"position":5},"title":"ADO \u2013 Localizando\u00a0informa\u00e7\u00f5es","author":"admin","date":"","format":false,"excerpt":"Quando falamos a n\u00edvel de dados (campos e registros), estamos tratando com o objeto\u00a0Recordset. Vamos mostrar como encontrar dados espec\u00edficos em um\u00a0Recordset ADO. Lembrando que um objeto\u00a0Recordset\u00a0possui muitas fun\u00e7\u00f5es \u00fateis. Entre elas podemos citar as mais usadas:\u00a0Bookmark, Find, Seek, Filter. Usando Bookmarks (marcadores) Um bookmark de um recordset \u00e9 como\u2026","rel":"","context":"Em &quot;Programa\u00e7\u00e3o&quot;","block_context":{"text":"Programa\u00e7\u00e3o","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/tecnologia\/programacao\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/02\/ado_sek3.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/posts\/337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/comments?post=337"}],"version-history":[{"count":1,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/posts\/337\/revisions"}],"predecessor-version":[{"id":338,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/posts\/337\/revisions\/338"}],"wp:attachment":[{"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/media?parent=337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/categories?post=337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/tags?post=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}