Jump to content
php.lv forumi

__construct


ray

Recommended Posts

Ir šāda klase:

 

class klase{
var $text;
function __construct() {
	$this->text = "Te ir teksts";
}
function show_text() {
	echo "{$this->text}";
}
}

 

un šāds kods, kas izsauc klasi:

 

$teksts = new klase();
$teksts->text('Jaunais teksts');
$teksts->show_text();

Bet man izmet šādu kļūdas paziņojumu:

 

Fatal error: Call to undefined method klase::text() in C:/bla/bla.php on line xx

 

Nesaprotu, kas tur nav kodā pareizi, jo text ir nodefinēts.

Link to comment
Share on other sites

text ir mainīgais nevis funkcija.

 

Lai piešķirtu vērtību text, tad dari tā $klase->text = 'Jaunais teksts';

 

Bet lai darītu kā esi izdarījis (kas ir slikts variants):

class klase{
var $text;
function __construct() {
	$this->text = "Te ir teksts";
}

function text($new_text) {
	$this->text = $new_text;

	return $this->text;
}

function show_text() {
	echo "{$this->text}";
}
}

Link to comment
Share on other sites

Lai piešķirtu vērtību text, tad dari tā $klase->text = 'Jaunais teksts';

 

man vnk ir jāizlabo šis?

 

$teksts = new klase();
$klase->text('Jaunais teksts');
$teksts->show_text();

Edited by ray
Link to comment
Share on other sites

man vnk ir jāizlabo šis?

 

$teksts = new klase();
$klase->text('Jaunais teksts');
$teksts->show_text();

ray, lai nu kā, bet es tevi patiesi apbrīnoju. Kā vispār iespējams kodēt, ja nejēdz pat no priekšā uztrakstīta piemēra, mainīgo samainīt uz sev nepieciešamo.

Link to comment
Share on other sites

Nedaudz labāk izskatās sekojoši:

 

class Klase {
 private $text;

 function __construct() {
	 $this->text = "Te ir teksts";
 }

 public function setText($val) {
	 $this->text = $val;
 }

 public function getText() {
	 return $this->text;
 }
}

$teksts =& new Klase();
$teksts->setText('Jaunais teksts');
echo $teksts->getText();

Link to comment
Share on other sites

×
×
  • Create New...