Är det detta du vill göra?
$b = new kalle();
$ggg = $b -> getKalle();
echo "Meeeeeen: ".$ggg.".<br />";
9 svar · 250 visningar · startad av GrodanBoll
Hej :)
Jag får inte nedanstående kod att fungera. Förstår inte varför.
class kalle
{
var $kalle1 = 1;
var $kalle2 = 2;
function getKalle ()
{
return $this -> kalle1;
}
}
$b = new kalle();
$ggg = "b -> getKalle ()";
echo "Meeeeeen: ".${$ggg}.".<br />";
Är det detta du vill göra?
$b = new kalle();
$ggg = $b -> getKalle();
echo "Meeeeeen: ".$ggg.".<br />";
class kalle
{
var $kalle1 = 1;
var $kalle2 = 2;
function getKalle ()
{
return $this->kalle1;
}
}
$b = new kalle();
$ggg = $b->getKalle();
echo "Meeeeeen: ".$ggg.".<br />";
Nope, jag vill använda mig av variabla variabler, se http://se.php.net/manual/sv/language.variables.variable.php
Då måste ditt värde på $kalle1 ha ett värde som är en sträng som inte får börja med siffra, för $1 är inget godkänt variabelnamn.
Det här fungerar:
class kalle
{
var $kalle1 = 'hej';
var $kalle2 = 'hopp';
function getKalle ()
{
return $this -> kalle1;
}
}
$hej = 'Ja';
$hopp = 'Nej';
$b = new kalle();
$ggg = $b->getKalle();
echo "Meeeeeen: ".$$ggg.".<br />";
Nja Matte
Jag vill ha själva
$ggg = "b->getKalle()";
Och sen att jag kan komma åt den via
echo "Meeeeeen: ".${$ggg}.".<br />";
Jag vet nämligen inte förrän vid run-time vilken funktion jag ska fråga efter.
Och istället vör att använda en oändligt, känns det soom iaf, antal if-satser så hade det varit najs med att använda variabla variabler istället.
Sen förstår jag inte riktigt vad du menar att jag måste ha en sträng i $kalle1 för. Allt jag vill ha e ju värdet därifrån.
Missförstod jag dig eller du mig? ;)
Kan väl tillägga att jag inte kan komma åt funktioner utan endast värden i variabler tydligen.
Varför är det så?
// Test 1
function viktor ()
{
$ville = 23;
return $ville;
}
$hmm = "viktor ()";
echo "Testar att anropa funktionen 'viktor': ".${$hmm}."<br />";
// Test 2
$value1 = 32;
$hmm2 = "value1";
echo "Testar att få tag i värdet från variablen 'value1': ".${$hmm2}."<br />";
Alltså Test1 fungerar inte, men Test 2 fungerar utmärkt.
Du får göra något på det här hållet:
class kalle
{
var $kalle1 = 1;
var $kalle2 = 2;
function getKalle ()
{
return $this -> kalle1;
}
}
$b = new kalle();
$ggg = "b -> getKalle ()";
eval('$var = $'.$ggg.';');
echo "Meeeeeen: ".$var.".<br />";
Re: Komma åt klasser via variabla variabler
$ggg = "b -> getKalle";
echo "Meeeeeen: ". $ggg() .".<br />";
funkar iaf för "vanliga" funktioner, vet inte om det funkar för funktioner i klasser.
/edit:
$ggg = '$b -> getKalle';
n du ju testa om det andra inte funkar.
Jepp Pimme upptäckte det sedan, tack för svaret. :)
Matte, über.
Kanon, jag får ta det det hållet istället men det gör så att allt funkar på det sättet jag vill.
Bugar och tackar. :birp