Jump to content
Umbus

Objectos em PHP: Duvidas

Recommended Posts

Umbus

Boas tenho seis duvidas em OOP no php:

[*]Imaginando que tenho dois ficheiros diferentes um em localhost/teste/nucleo/ficheiro1.php e outra em localhost/teste/vida/mundo/ficheiro2.php como eu chamo no ficheiro2.php a classe do ficheiro1.php?

[*]Imaginando que tenho dois ficheiros diferentes um em localhost/teste/nucleo/ficheiro1.php e outra em localhost/teste/nucleo/ficheiro2.php como eu chamo no ficheiro2.php a classe do ficheiro1.php?

[*]Imaginando que tenho dois ficheiros diferentes um em localhost/teste/nucleo/ficheiro1.php e outra em localhost/teste/vida/mundo/ficheiro2.php como eu chamo no ficheiro2.php uma função do ficheiro1.php?

[*]Imaginando que tenho dois ficheiros diferentes um em localhost/teste/nucleo/ficheiro1.php e outra em localhost/teste/nucleo/ficheiro2.php como eu chamo no ficheiro2.php uma função do ficheiro1.php?

[*]Imaginando que tenho dois ficheiros diferentes um em localhost/teste/nucleo/ficheiro1.php e outra em localhost/teste/vida/mundo/ficheiro2.php como eu chamo no ficheiro2.php uma variável no ficheiro1.php?

[*]Imaginando que tenho dois ficheiros diferentes um em localhost/teste/nucleo/ficheiro1.php e outra em localhost/teste/nucleo/ficheiro2.php como eu chamo no ficheiro2.php uma variável no ficheiro1.php?

Estou a desenvolver o site mas estou com problemas nestas coisas :down:


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
aladino77

O que você pretende é saber como incluir num ficheiro PHP o conteudo de um outro ficheiro PHP, e também, como indicar o caminho para um ficheiro numa outra directoria, que pode ser uma subdirectoria ou num outro ramo.

Ao incluir um ficheiro temos acesso a todas as declarações nele incluídas, sejam variáveis, funções ou classes.

Há quatro funções em PHP para tal, require, require_once, include e include_once.  Essas funções são semelhantes, diferindo apenas na forma como lidam com os erros nos ficheiros a incluir. require e require_once geram um erro fatal e interrompem a execução do script quando o ficheiro a incluir gerar erros. include e include_once geram uma mensagem de aviso (warning) mas a execução do script continua, quando o ficheiro a incluir gerar erros.

Para ficheiros na mesma directoria ou numa subdirectoria

<?
include ("ficheiro1.php");
include ("chrome/ficheiro1.php"); // subdirectoria chrome

// outras declarações
?>

Para ficheiros fora da directoria pode-se usar caminhos relativos ou absolutos. Caminhos relativos, são mais flexíveis. e começam com um ou mais ../  onde cada ../ quer dizer um directório acima. Os absolutos começam com / (Unix/Linux) e  C:\  (Windows). Os relativos estão em formato Unix/Linux.

Aproveitando a pergunta 1.

1. localhost/teste/nucleo/ficheiro1.php

    localhost/teste/vida/mundo/ficheiro2.php

<?
//no ficheiro2.php
// subir dois níveis (até teste) e entrar na directoria nucleo
include("../../nucleo/ficheiro1.php");  // relativo
include("/teste/nucleo/ficheiro1.php");  // absoluto

// outras declarações
?>

Acho que com isso já consegue "desenvolver o site"  ;)

Share this post


Link to post
Share on other sites
brunoais

para classes tens tb o __autoload(). Com ele n precisas de incluir ficheiros das classes exceto qd são necessários (feito automaticamente)


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Umbus

Eu nao uso o __autoload() e consigo fazer ligaçoes na mesma pasta fazerndo classe::funcao as variaveis e que nao sei buscar. o problema e noutras paginas


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
Umbus

Uma coisa que estou com problemas, tenho uma pagina de constantes um exemplo é este:

const FETCH_NUMERIC = MYSQL_NUM;

Depois da-me erro aqui:

$this->fetch = FETCH_NUMERIC;

Notice: Use of undefined constant FETCH_NUMERIC - assumed 'FETCH_NUMERIC' in


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
mjamado

Uma coisa que estou com problemas, tenho uma pagina de constantes um exemplo é este:

const FETCH_NUMERIC = MYSQL_NUM;

Depois da-me erro aqui:

$this->fetch = FETCH_NUMERIC;

Notice: Use of undefined constant FETCH_NUMERIC - assumed 'FETCH_NUMERIC' in

A declaração const é para constantes de classe. Para constantes globais, tens de usar define.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
Umbus

yap ja resolvi mas agora tenho outro problema:

Fatal error: Class 'UserTools' not found in

$Userstools = new UserTools();

Porque?


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
fvox

yap ja resolvi mas agora tenho outro problema:

Fatal error: Class 'UserTools' not found in

$Userstools = new UserTools();

Porque?

Hi.

E o ficheiro que está a classe UserTools está realmente sendo incluído dentro do script que instância esse objeto?

Ah, e lembre-se que o PHP é case sensitive!

[]'s


"Strength of the world, the one true beholder...Ice in my veins, for those who've died."

Share this post


Link to post
Share on other sites
brunoais

yap ja resolvi mas agora tenho outro problema:

Fatal error: Class 'UserTools' not found in

$Userstools = new UserTools();

Porque?

Se não usas o __autoload(), tens que incluir manualmente (usando o include ou o require) o ficheiro que contém essa classe. Se não o fizeres esse erro é mostrado


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Umbus

O problema e qeu se uso __autoload, ele diz que ja foi usado o __autoload no usertools lol

se usar o include da erro


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
Umbus

Vou dizer os erros:

Sem nada:

Fatal error: Class 'UserTools' not found in

Com o autoload:

Fatal error: Cannot redeclare class UserTools in

Com include:

Fatal error: Cannot redeclare class UserTools in

O que faço? :S

O que fiz foi:

$Userstools = new UserTools();

para isar a função:

$Userstools->Addguest


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
brunoais

Mostra o q tens no __autoload().

Mostra o q tens no ficheiro com essa classe.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Umbus

Agora so tenho erro aqui:

Notice: Undefined variable: UserTools in

Fatal error: Call to a member function Addguest() on a non-object in

$UserTools->Addguest(); // Linha de erro

$UserTools = new UserTools(); // por baixo do final da classe

Isto não é estupido?


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
Umbus

A unica maneira de isto funcionar e colocar o $UserTools = new UserTools();  dentro da funcao que aparece $UserTools->Addguest();, nao existe outra maneira de fazer isto sem que isto seja preciso?


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
scorch

Isso está em funções diferentes?


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
Umbus

Boas, agradeco desde ja ao brunoais que me ja ajudou com os erros, que afinal nao eram tao graves quanto ja estava a pensar. Agora estou com outro:

Fatal error: Call to a member function replacestatement() on a non-object in

$dbresult = $this->connectdb->replacestatement();

Nao sei bem como resolver isto ja que o replacestatement() e um objecto como e obvio lol


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.