Connecting Tech Pros Worldwide Help | Site Map

How to avoid 'Notice: Trying to get property of non-object'

  #1  
Old March 18th, 2008, 08:35 AM
vizard
Guest
 
Posts: n/a
Hi All,
Im new to PHP. In the script I've written, i have the following line:

if($coursesTaught[$i]->empId == $record-
Quote:
>getElementsByTagName('EMPL_ID')->item(0)->nodeValue){
// do something
}

when the if condition executes, i get the foll message: Notice: Trying
to get property of non-object in C:\Program Files\Apache Group
\Apache2\htdocs\ENGR_COURSES\updateCoursesTaught.p hp on line 33

The script works but the message is annoying. I do not want to alter
the error reporting in PHP.ini.
Is there any other way of avoiding this message?

Thanks,
Vin
  #2  
Old March 18th, 2008, 09:05 AM
Joe Scylla
Guest
 
Posts: n/a

re: How to avoid 'Notice: Trying to get property of non-object'


vizard wrote:
Quote:
Hi All,
Im new to PHP. In the script I've written, i have the following line:
>
if($coursesTaught[$i]->empId == $record-
Quote:
>getElementsByTagName('EMPL_ID')->item(0)->nodeValue){
// do something
}
>
when the if condition executes, i get the foll message: Notice: Trying
to get property of non-object in C:\Program Files\Apache Group
\Apache2\htdocs\ENGR_COURSES\updateCoursesTaught.p hp on line 33
>
The script works but the message is annoying. I do not want to alter
the error reporting in PHP.ini.
Is there any other way of avoiding this message?
>
Thanks,
Vin
The error message says that one or both of the objects or their
properties you try to access are not defined (probable null). You can
avoid that notice by checking if the property you try to access is set.

<code>
if(
isset($coursesTaught[$i]->empId) &&
isset($record->getElementsByTagName('EMPL_ID')->item(0)->nodeValue) &&
$coursesTaught[$i]->empId ==
$record->getElementsByTagName('EMPL_ID')->item(0)->nodeValue
)
{
// do something
}
</code>

or set a user-defined error handler suppressing such notices:
http://www.php.net/manual/en/functio...or-handler.php

You should also think about the reason of the error. Is it normal that
you try to access a object or property of an object that is not defined?
Why is the object or property not defined?

Joe
  #3  
Old April 4th, 2008, 05:45 PM
vizard
Guest
 
Posts: n/a

re: How to avoid 'Notice: Trying to get property of non-object'


On Mar 18, 12:58 am, Joe Scylla <joe.scy...@gmail.comwrote:
Quote:
vizard wrote:
Quote:
Hi All,
Im new to PHP. In the script I've written, i have the following line:
>
Quote:
if($coursesTaught[$i]->empId == $record-
Quote:
getElementsByTagName('EMPL_ID')->item(0)->nodeValue){
// do something
}
>
Quote:
when the if condition executes, i get the foll message: Notice: Trying
to get property of non-object in C:\Program Files\Apache Group
\Apache2\htdocs\ENGR_COURSES\updateCoursesTaught.p hp on line 33
>
Quote:
The script works but the message is annoying. I do not want to alter
the error reporting in PHP.ini.
Is there any other way of avoiding this message?
>
Quote:
Thanks,
Vin
>
The error message says that one or both of the objects or their
properties you try to access are not defined (probable null). You can
avoid that notice by checking if the property you try to access is set.
>
<code>
if(
isset($coursesTaught[$i]->empId) &&
isset($record->getElementsByTagName('EMPL_ID')->item(0)->nodeValue) &&
$coursesTaught[$i]->empId ==
$record->getElementsByTagName('EMPL_ID')->item(0)->nodeValue
)
{
// do something
}
</code>
>
or set a user-defined error handler suppressing such notices:http://www.php.net/manual/en/functio...or-handler.php
>
You should also think about the reason of the error. Is it normal that
you try to access a object or property of an object that is not defined?
Why is the object or property not defined?
>
Joe
That worked!! Thanks Joe!
Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
Naming conventions: use member prefixes to avoid collisions? Nels Olsen answers 6 November 15th, 2005 08:45 PM
Why doesn't strrstr() exist? Christopher Benson-Manica answers 149 November 15th, 2005 03:33 AM