function $variable

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

function $variable

Mesajde killbaz » Mie Apr 21, 2010 9:31 am

Salut tuturor ...

Se poate face ceva de genu

function $variable() {
echo "iha, merge";
}

? Ma tot chinui si nu prea ii dau de cap ...
imi tot zice :

Parse error: parse error, expecting `T_STRING' in ....

multumesc


echo $semnatura;

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Mie Apr 21, 2010 9:44 am

cred ca mai trebuie sa citesti in manualul php care sunt diferentele dintre functii si variabile...

o functie contine o serie de instructiuni de comanda si control si nu poate incepe cu caractere speciale de gen $

o variabila contine o valoare (de un anumit tip) si se poate folosi pentru stocarea datelor pe parcursul codului si trebuie sa inceapa cu caracterul $

deci tu ce vrei sa faci functie sau variabila? sau constanta?
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

Mesajde killbaz » Mie Apr 21, 2010 9:53 am

merci de raspunsul super rapid... fac diferenta dintre o functie si o variabila, dar ce vreau sa fac nu merge...

vreau sa fac o functie cu ajutorul unei variabile

codul complet :

$query2 = mysql_query("SELECT nume FROM categorii WHERE nume='$pagina_get' LIMIT 1;");
$row2 = mysql_fetch_array($query2);

$nume = $row2['nume'];

if (isset($nume)) {
function $nume() {
articole();
}

}
echo $semnatura;

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Mie Apr 21, 2010 10:02 am

scoate $ din fata numelui functiei si gata...
vei avea astfel o functie cu numele nume() si o variabila cu acelasi nume $nume
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

Mesajde killbaz » Mie Apr 21, 2010 10:09 am

nu nu nu
nu cred ca ma pot face inteles
incerc sa explic

Vreau sa se creeze o functie cu ajutorul unei variable deoarece am o baza de date si mai totul e dinamic si chestia asta cu crearea functiei care va contine acelasi continut :)) ma impedica , sa mor de stiu sa ma explic

astfel

am un tabel cu numele categorii

in acel tabel am ID si nume

id | nume
1 | design
2 | scripts
3 | audio

okay?

acum, cu ajutorul :

$query2 = mysql_query("SELECT nume FROM categorii WHERE nume='$pagina_get' LIMIT 1;");
$row2 = mysql_fetch_array($query2);
$nume = $row2['nume'];

pot extrage numele din baza de date dupa care as dori ca acel nume extras sa fie numele unei functii

ceva de genu :

function $nume() {
articole();
}


Intr-un final ar iesi ceva de genu:

function design() {
articole();
}

Sper ca m-am facut inteles :D daca nu... offfff
echo $semnatura;

Avatar utilizator
kyron
Senior Member
Mesaje: 639
Membru din: Joi Sep 16, 2004 1:12 pm
Localitate: Bucuresti
Contact:

Mesajde kyron » Mie Apr 21, 2010 10:25 am

Poate te ajuta asta:

[php]
<?php
$function_body = 'if ($x > $y) {return $x;} else {return $y;}';

$test = create_function('$x,$y', $function_body);

echo $test(1,2);

?>
[/php]

sau poate si mai concret pentru cazul tau, unde cred ca vrei ca numele functiei sa fie o valoare dintr-o celula din baza de date:

[php]
<?php
$function_body = 'if ($x > $y) {return $x;} else {return $y;}';

$test = 'nume_functie'; // aici preiei valoarea din baza de date

$$test = create_function('$x,$y', $function_body);

echo $$test(1,2);

//sau

echo $nume_functie(1,2);
?>
[/php]

MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Mesajde MarPlo » Mie Apr 21, 2010 10:30 am

O idee pe care a-si folosi-o in cazul tau e urmatorul exemplu, cu php oop.

Cod: Selectaţi tot

<?php
class clasa_functii {
  function f1() {
   $out = 'abc - f1';
   echo $out;
  }

  function f2() {
   $out = 'abc - f2';
   echo $out;
  }
}

$get_clas = new clasa_functii();

// Acum preiei in variabila numele functiei, care sa fie in clasa, si apoi o apelezi
$get_f = 'f2';
$get_clas->$get_f();  // Apeleaza $get_clas->f2()
?>

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

Mesajde killbaz » Mie Apr 21, 2010 10:40 am

MarPlo scrie:O idee pe care a-si folosi-o in cazul tau e urmatorul exemplu, cu php oop.

Cod: Selectaţi tot

<?php
class clasa_functii {
  function f1() {
   $out = 'abc - f1';
   echo $out;
  }

  function f2() {
   $out = 'abc - f2';
   echo $out;
  }
}

$get_clas = new clasa_functii();

// Acum preiei in variabila numele functiei, care sa fie in clasa, si apoi o apelezi
$get_f = 'f2';
$get_clas->$get_f();  // Apeleaza $get_clas->f2()
?>


si in clasa nu ar trebui sa creez functia care imi trebuie?

kyron :( nu merge, ori nu stiu eu...
echo $semnatura;

crivion
Senior Member
Mesaje: 781
Membru din: Mar Apr 10, 2007 4:20 pm
Localitate: Somewhere

Mesajde crivion » Mie Apr 21, 2010 10:47 am

$functii = array("f1", "f2", "f3");

foreach ($functii as $functie) {
$functie = create_function("", 'return "'.$functie.'<br>";');
echo $functie();
}

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

Mesajde killbaz » Mie Apr 21, 2010 11:30 am

crivion scrie:$functii = array("f1", "f2", "f3");

foreach ($functii as $functie) {
$functie = create_function("", 'return "'.$functie.'<br>";');
echo $functie();
}


cred ca va merge...nu sunt acasa dar cand ajung dau reply... merci de raspuns
echo $semnatura;

crivion
Senior Member
Mesaje: 781
Membru din: Mar Apr 10, 2007 4:20 pm
Localitate: Somewhere

Mesajde crivion » Mie Apr 21, 2010 12:13 pm

trebuie doar adaptat

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

Mesajde killbaz » Mie Apr 21, 2010 12:51 pm

crivion scrie:trebuie doar adaptat


cum atribui fiecarei functii un continut

o functie normala e asa , da?

function f1() { echo 'merge'; }

:( nu cred ca merge cum ai facut tu crivion :( nu stiu ce e de facut.
echo $semnatura;

MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Mesajde MarPlo » Mie Apr 21, 2010 1:14 pm

Cam asa:
$f1 = create_function("", 'return "merge";');

Avatar utilizator
kyron
Senior Member
Mesaje: 639
Membru din: Joi Sep 16, 2004 1:12 pm
Localitate: Bucuresti
Contact:

Mesajde kyron » Mie Apr 21, 2010 2:18 pm

@killbaz: dar tu ai testat exemplele pe care le-ai primit inainte sa zici ca nu merg ?

Oricum ceea ce vrei tu sa faci nu e chiar de incepator. Nu stiu ce aplicatie ai tu acolo, s-ar putea ca abordarea asta sa fie gresita. Ce vrei sa faci mai exact de ai nevoie sa creezi functii dinamic ?

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

Mesajde killbaz » Mie Apr 21, 2010 2:41 pm

MarPlo scrie:Cam asa:
$f1 = create_function("", 'return "merge";');


merge :D
nu e exact ce am vrut, dar important este ca merge :D nu mai este static codul, deci e bun..

multumesc tuturor
echo $semnatura;


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 28 vizitatori