Gurzi Posted December 27, 2006 at 04:04 PM Report #72678 Posted December 27, 2006 at 04:04 PM Bem criei este tópico porque acredito que muita gente vai precisar dele. Estou a aprender e isto está me dar aqui um erro estúpido <?php class Foo { public static $eu_static = ‘foo’; public function valorStatic() { return self::$eu_static; } } print Foo::$eu_static; // foo $obj = new Foo(); $obj->valorStatic(); // foo ?> ERRO : Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /Users/tiagopalhota/Sites/teste.php on line 3
kingless Posted December 27, 2006 at 04:18 PM Report #72686 Posted December 27, 2006 at 04:18 PM ERRO : Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /Users/tiagopalhota/Sites/teste.php on line 3 Qual é a versão do teu PHP ?
Gurzi Posted December 27, 2006 at 04:24 PM Author Report #72691 Posted December 27, 2006 at 04:24 PM PHP Version 4.4.4
kingless Posted December 27, 2006 at 04:26 PM Report #72692 Posted December 27, 2006 at 04:26 PM Só podes utilizar public, static, self, const... apartir do PHP 5.
Gurzi Posted December 27, 2006 at 05:01 PM Author Report #72702 Posted December 27, 2006 at 05:01 PM Que shit .. lá vai upgrade =D
Gurzi Posted December 27, 2006 at 05:44 PM Author Report #72721 Posted December 27, 2006 at 05:44 PM Upgraded and working 😉 Thnks ! Não fazia a mínima ideia que php before v5.0 não corria objectos. Fica a dica;) Thnks!
djthyrax Posted December 27, 2006 at 05:51 PM Report #72724 Posted December 27, 2006 at 05:51 PM http://pt.php.net/manual/en/language.oop.php http://pt.php.net/manual/en/language.oop5.php Leituras obrigatórias 😉 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
Gurzi Posted December 27, 2006 at 06:20 PM Author Report #72734 Posted December 27, 2006 at 06:20 PM Não dá para faze echos dentro de uma função ? <?php error_reporting(E_ALL); class Homem { public var $nome; public function teste() { echo "homem"; } } $obj = new Homem(); $obj->teste(); ?>
jreis Posted December 27, 2006 at 06:32 PM Report #72739 Posted December 27, 2006 at 06:32 PM Dar dá, mas não é a forma mais apropriada de "escrever" coisas. Digo eu. Experimenta assim: <?php error_reporting(E_ALL); class Homem { public var $nome; public function teste() { return "homem"; } } $obj = new Homem(); echo $obj->teste(); ?> Suponho que assim funcione. Obviamente para estruturas de dados mais complexas pode não ser assim tão linear, mas tas a perceber a ideia. "Pensa positivo: tudo pode piorar"
Gurzi Posted December 27, 2006 at 06:34 PM Author Report #72741 Posted December 27, 2006 at 06:34 PM O problema é que no php5 não se usa o var.. vou passar a noite a estudar o upgrade de php4 para o 5..
kingless Posted December 27, 2006 at 06:37 PM Report #72744 Posted December 27, 2006 at 06:37 PM Não fazia a mínima ideia que php before v5.0 não corria objectos. Fica a dica;) Thnks! Só não podes correr objectos no PHP 4 utilizando o OO mas podes correr de outra forma... Ex: <?php class a { var $abc = 'teste'; function b () { echo $this->abc; } } $class = new a(); $class->b() echo $class->abc; ?>
kingless Posted December 27, 2006 at 06:46 PM Report #72748 Posted December 27, 2006 at 06:46 PM Dar dá, mas não é a forma mais apropriada de "escrever" coisas. Digo eu. Experimenta assim: <?php error_reporting(E_ALL); class Homem { public var $nome; public function teste() { return "homem"; } } $obj = new Homem(); echo $obj->teste(); ?> Suponho que assim funcione. Obviamente para estruturas de dados mais complexas pode não ser assim tão linear, mas tas a perceber a ideia. Acho que esse código esta errado porque no PHP 4 não se pode utilizar public na var nem na função e no PHP 5 não se pode utilizar public seguido de var
Gurzi Posted December 27, 2006 at 06:53 PM Author Report #72749 Posted December 27, 2006 at 06:53 PM kingless eu fiz error_reporting(E_ALL) mas os erros não aparecem, preciso de editar algo directamente no php.ini ?
kingless Posted December 27, 2006 at 07:04 PM Report #72750 Posted December 27, 2006 at 07:04 PM Abre o php.ini e procura pela linha "error_reporting = ..." e troca para error_reporting = E_ALL depois procura por "display_errors =" e troca para display_errors = On
jreis Posted December 27, 2006 at 07:26 PM Report #72758 Posted December 27, 2006 at 07:26 PM Acho que esse código esta errado porque no PHP 4 não se pode utilizar public na var nem na função e no PHP 5 não se pode utilizar public seguido de var É possível, sinceramente (ainda) não me tenho preocupado muito com PHP5. Só não podes correr objectos no PHP 4 utilizando o OO mas podes correr de outra forma...(...) O que é que queres dizer com isso, não poder correr objectos utilizando o OO..? "Pensa positivo: tudo pode piorar"
kingless Posted December 27, 2006 at 07:32 PM Report #72760 Posted December 27, 2006 at 07:32 PM O que é que queres dizer com isso, não poder correr objectos utilizando o OO..? //Não se pode correr objectos assim echo ClasseN::Objecto; //só se pode correr objectos assim $classeN = new classeN(); echo $classN->Objecto; Melhor dizendo: class a { var $abc = "teste"; function b { echo $this->abc; //Mostra um erro se utilizarmos o OO "::" } } a::b(); //Não funciona $class = new a(); $class->b(); //funciona
jreis Posted December 27, 2006 at 07:40 PM Report #72761 Posted December 27, 2006 at 07:40 PM Ah isso. Por acaso pode-se (desde PHP3, segundo parece), mas mesmo admitindo que não se pudesse, não deixaria de ser "OO". Pormenores. Mais info. "Pensa positivo: tudo pode piorar"
jreis Posted December 27, 2006 at 07:43 PM Report #72762 Posted December 27, 2006 at 07:43 PM Hmm, ja vi que te estavas a referir ao "::" (operador "scope resolution") quando falavas em "OO". Esse operador serve apenas para como o nome indica fazer "scope resolution", não deixa de ser programação OO por não se poder usar. "Pensa positivo: tudo pode piorar"
kingless Posted December 27, 2006 at 07:44 PM Report #72763 Posted December 27, 2006 at 07:44 PM Ah isso. Por acaso pode-se (desde PHP3, segundo parece), mas mesmo admitindo que não se pudesse, não deixaria de ser "OO". Pormenores. Mais info. Experimenta tu o código para ver se funciona 😉 Hmm, ja vi que te estavas a referir ao "::" (operador "scope resolution") quando falavas em "OO". Esse operador serve apenas para como o nome indica fazer "scope resolution", não deixa de ser programação OO por não se poder usar. Ninguem disse que deixa de ser programação...
jreis Posted December 27, 2006 at 07:49 PM Report #72764 Posted December 27, 2006 at 07:49 PM Esse código especificamente não sei se funciona, mas tenho scripts que usam essa funcionalidade. Bem visto, ninguém disse que deixava de ser programação. "Pensa positivo: tudo pode piorar"
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now