⊗ppOpMgStNEP 92 of 107 menu

Leitura de propriedade inexistente em OOP em PHP

Vamos tentar gravar dados em uma propriedade inexistente - isso vai funcionar:

<?php $test = new Test; $test->prop3 = 3; // vamos gravar 3 echo $test->prop3; // exibirá 3 ?>

Suponha que não queremos permitir a gravação em propriedades inexistentes. E, de modo geral, queremos permitir a gravação apenas nas propriedades prop1 e prop2.

Isso é fácil de fazer - basta adicionar a condição correspondente no método __set:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { // Vamos escrever a condição: if ($property == 'prop1' or $property == 'prop2') { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>

Se houver muitas propriedades assim, não é muito prático listar todas elas na condição.

Vamos colocar as propriedades permitidas para gravação em um array e verificar a existência da propriedade neste array usando a função in_array:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $properties = ['prop1', 'prop2']; // propriedades permitidas if (in_array($property, $properties)) { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar