variables can be defined as static also...----- Original Message -----From:
"Ben Sgro (ProjectSkyLine)" Date: Friday, July 27, 2007 10:52 amSubject: Re:
[nyphp-talk] OOP Error/QuestionTo: NYPHP Talk > Hello Andy, > > I tried your
1st, quicker method, I get:> > PHP Fatal error: Access to undeclared static
property: > Error::$builtMessage in /var/www/html/sk/OOPLIB/ERRO.php on line
81> self::$builtMessage = $errorStr;> > builtMessage is declared as:>
$this->builtMessage = '';> in the class.> > I am still learning OOP and had
just started it when I wrote > this code ...> So, I may need to rework it, but
I'd prefer to not do that right now.> > - Ben> > Ben Sgro, Chief Engineer>
ProjectSkyLine - Defining New Horizons> +1 718.487.9368 (N.Y. Office)> > Our
company: www.projectskyline.com> Our products: www.project-contact.com> > This
e-mail is confidential information intended only for the > use of the
individual to whom it is addressed.> ----- Original Message ----- > From:
Andy Dirnberger > To: 'NYPHP Talk' > Sent: Friday, July 27, 2007 10:43 AM>
Subject: RE: [nyphp-talk] OOP Error/Question> > > Try self::$builtMessage =
$errorStr;> > > > Or another option is to adopt the singleton pattern. This
> will give you the same instance of the Error object anywhere you > try to use
it in your code.> > > > Something like:> > > > class Error {> >
private function __constrct () {> > }> > > > public function
GetInstance () {> > If (self::$instance == null) self::$instance = new
self;> > Return self::$instance;> > }> > > > public function
Backtrace () {> > // code from below> > }> > > > private
$builtMessage;> > private static $instance = null;> > }> > > > And in
your code:> > > > $err = Error::GetInstance ();> > $err->Backtrace ();> >
> > > ----------------------------------------------------------------->
-------------> > From: [EMAIL PROTECTED] [mailto:talk-> [EMAIL PROTECTED] On
Behalf Of Ben Sgro (ProjectSkyLine)> Sent: Friday, July 27, 2007 10:29 AM>
To: NYPHP Talk> Subject: Re: [nyphp-talk] OOP Error/Question> > > > Hello,
> > > > Thanks, both your fixes fixed this issue.> > > > However, it
broke it in another place.> > > > PHP Fatal error: Using $this when not in
object context in > /var/www/html/sk/OOPLIB/ERRO.php on line 80> > Inside the
Backtrace( ) function I have:> > $this->builtMessage = $errorStr;> >
> > To save the message to a string within the object. I can't do >
self::builtMessage = $errorStr,> > so what can I do?> > > > Here's the
backtrace function:> > > > static function Backtrace( )> {>
$btSet = debug_backtrace( );> $iValue = 1; /* [0] is the traceback
for the Error:: > *///sizeof($btSet) - 1;> $eSet = $btSet[$iValue];>
> $errorStr = "\ndate: " . date('r')> .
"\nfile: " . $eSet['file']> . "\nline: " . $eSet['line']>
. "\nfunction: " . @$eSet['class'] . '::' . > $eSet['function']
. "\nargs: ";> > > > /* Build a list of the
functions arguments. */> while(list($argIndex, $argStr) =
each($eSet['args']))> {> $errorStr .=
"[${argIndex}]$argStr ";> }> $this->builtMessage =
$errorStr;> }> > > > Which is called from another function:> >
case LOG_LEVEL_ALERT:> self::Backtrace( );> > > > -
Ben> > > > > > Ben Sgro, Chief Engineer> ProjectSkyLine - Defining New
Horizons> > ----- Original Message ----- > > From: [EMAIL PROTECTED] > >
To: NYPHP Talk > > Sent: Friday, July 27, 2007 10:17 AM> > Subject: Re:
[nyphp-talk] OOP Error/Question> > > > you're calling Error statically,
so there can't be any > object instance references... instead of
$this->Backtrace(), use > self::Backtrace();> ----- Original Message ----->
From: "Ben Sgro (ProjectSkyLine)" > Date: Friday, July 27, 2007 10:10 am>
Subject: [nyphp-talk] OOP Error/Question> To: NYPHP Talk > > > Good
morning, > > > > So, I have a script where I'm calling:> > > >
function ReceivePOPEmail($popObject)> > {> > $error =
$popObject->Login($popObject-> > >username,$popObject->password,> >
$popObject->apop);> > if ( $error != '' )> > {> > /* We've had an
error. */> > Error::Log("Error: " . HtmlSpecialChars($error), > >
LOG_LEVEL_ALERT); return PROC_FAILURE;> > }> > return PROC_SUCCESS;> >
}> > > > that's function ... I don't want to pass the Error Object > >
around, so I just want to call it via:> > Error:Log(.....);> > > >
Now, inside the Error class, there is this code:> > case LOG_LEVEL_ALERT:>
> $this->Backtrace( );> > > > Which is getting executed. But I'm getting
the error:> > > > PHP Fatal error: Using $this when not in object context
in > > /var/www/html/sk/OOPLIB/ERRO.php on line 101> > > > So, how do
I call that class's method w/out passing the > object around?> > > > -
Ben> > > > > > Ben Sgro, Chief Engineer> > ProjectSkyLine -
Defining New Horizons> > > > This e-mail is confidential information
intended only for > the > > use of the individual to whom it is addressed.>
> > > > ----------------------------------------------------------------->
-----------> > _______________________________________________> New York
PHP Community Talk Mailing List>
http://lists.nyphp.org/mailman/listinfo/talk> > NYPHPCon 2006 Presentations
Online> http://www.nyphpcon.com> > Show Your Participation in New York
PHP> http://www.nyphp.org/show_participation.php> > > >
----------------------------------------------------------------->
-------------> > > _______________________________________________> New York
PHP Community Talk Mailing List> http://lists.nyphp.org/mailman/listinfo/talk>
> NYPHPCon 2006 Presentations Online> http://www.nyphpcon.com> > Show Your
Participation in New York PHP> http://www.nyphp.org/show_participation.php>
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com
Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php