Php De Objeye Fonksiyon İle İlave Özellikler
-
Selamlar,
Bir class ım var içinde de grafik çizdirtiyorum. Fakat classımın içinde
function draw() fonksiyonu ile çizilecek grafiğin değerlerini tek seferde giriyorum.
Örnek:
<?php class Graph { public function draw ($graph_name, $graph_code, $data_source, $data_source_url, $data_array = array(null), $diff_serie_no, $y_axis, $x_axis) { //kodlar... } } ?>
Kullanırken ise
<?php $xgraph = new Graph(); $xgraph->draw("TOPLAM SATIŞ GRAFİĞİ","SX_Graph","arrayToDataTable",null,$sx_array,"3","ADET","AY"); ?>
Şeklinde kullanıyorum ama benim yapmak istediğim özellikleri şu şekilde ilave edip grafiği en son render etmek.
<?php $xgraph = new Graph(); $xgraph->name("TOPLAM SATIŞ GRAFİĞİ"); $xgraph->graph_code("SX_Graph"); .... ... $xgraph->render(); ?>
Bunun için class ı nasıl contruct etmeliyim? Nasıl yeni ilave özellikler tanımlamalıyım?
-
Sınıf niteliği olarak değişkenleri tutsan ?
-
PLaXToR bunu yazdı
Selamlar,
Bir class ım var içinde de grafik çizdirtiyorum. Fakat classımın içinde
function draw() fonksiyonu ile çizilecek grafiğin değerlerini tek seferde giriyorum.
Örnek:
Kullanırken ise
Şeklinde kullanıyorum ama benim yapmak istediğim özellikleri şu şekilde ilave edip grafiği en son render etmek.
Bunun için class ı nasıl contruct etmeliyim? Nasıl yeni ilave özellikler tanımlamalıyım?
<?php class Graph { private $name; public function draw ($graph_code, $data_source, $data_source_url, $data_array = array(null), $diff_serie_no, $y_axis, $x_axis) { //kodlar... //$graph_name yerine artik $this->name kullaniyorum. } public function name($n) { $this->name = $n; } } ?>
-
PLaXToR bunu yazdı
Selamlar,
Bir class ım var içinde de grafik çizdirtiyorum. Fakat classımın içinde
function draw() fonksiyonu ile çizilecek grafiğin değerlerini tek seferde giriyorum.
Örnek:
Kullanırken ise
Şeklinde kullanıyorum ama benim yapmak istediğim özellikleri şu şekilde ilave edip grafiği en son render etmek.
Bunun için class ı nasıl contruct etmeliyim? Nasıl yeni ilave özellikler tanımlamalıyım?
<?php class Graph { private $name; public function draw ($graph_code, $data_source, $data_source_url, $data_array = array(null), $diff_serie_no, $y_axis, $x_axis) { //kodlar... //$graph_name yerine artik $this->name kullaniyorum. } public function name($n) { $this->name = $n; } } ?>
Veya
<?php class Graph { private $drawData = []; public function draw ($graph_code, $data_source, $data_source_url, $data_array = array(null), $diff_serie_no, $y_axis, $x_axis) { //kodlar... //$graph_name yerine artik $this->drawData["graph_name"] kullaniyorum. } public function name($n) { $this->drawData["graph_name"] = $n; } } ?>
-
Graph sınıfının iç dinamikleri ile oynamadan şu şekilde halledebilirsin:
<?php class Graph { public function Draw($name) { echo $name; } } class NewGraph extends Graph { private $_graphData=[]; public function getName() { return $this->_graphData['Name']; } public function setName($newName) { $this->_graphData['Name']=$newName; } public function Draw() { parent::Draw($this->_graphData['Name']); } } $ng = new NewGraph(); $ng->setName('TBT'); echo $ng->getName() . '\r\n'; $ng->Draw();
Çalışan örnek: https://www.ideone.com/xXsRc5
-
Kodu düzeltemiyorum. NewGraph sınıfının metodu Draw değil draw olacak. PHP de diğer oop diller gibi override ederken aynı imzayı istiyor.