Missing arguments for function in class? (object-oriented programming)
| From: | Thomas David Kehoe | Date: | Wed, 27 Jun 2001 13:26:53 +0000 |
| Subject: | Missing arguments for function in class? (object-oriented programming) | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-55383@lists.php.net to get a copy of this message | ||
I have a function that works perfectly (from within a script). But when I
make it a class (object) and call it from an external file, I get the
following error:
Warning: Missing argument 1 for display_records() in
http://www.friendshipcenter.com/Objects/display_records.inc
on line 5
Warning: Missing argument 2 for display_records() in
http://www.friendshipcenter.com/Objects/display_records.inc
on line 5
After the warnings, it executes the function without passing values to the
variables (i.e., it doesn't work), and then it executes the function a
second time perfectly (with the appropriate variables).
Line 5 is this:
function display_records($row, $record_count)
It displays the first error message for $row, and the second error message
for $record_count.
I call the function with this:
$my_records = new Display_Records;
$my_records -> display_records($row, $record_count);
The full scripts are below.
What I tried that didn't help was declaring the variables in the class with:
class Display_Records {
var $row;
var $record_count;
I also tried setting defaults for the variables (er, attributes) with this
(it didn't help):
$my_records = new Display_Records;
$my_records -> row = $row;
$my_records -> record_count = 1;
$my_records -> display_records($my_records -> row, $my_records ->
record_count);
This is my first try at OOP. The code is for a personal ad website
(FriendshipCenter.com). Here's the full class script, followed by the
script I use to call the function.
--
Thomas David Kehoe, author of
"THE EVOLUTION OF INTIMATE RELATIONSHIPS"
How Our Brains Are Hardwired For Relationships
http://www.FriendshipCenter.com/TEIR/
<?php
class Display_Records {
function display_records($row, $record_count) {
//Calculate age
$current_date = (date("Y-m-d"));
$birthdate = $row["BIRTHDATE"];
$age = ($current_date - $birthdate);
// Display record number.
echo "Row number: ", ($record_count + $advance_row),
"<p>";
// Display username and e-mail address
echo "<font color=green>Username: </font>",
$row["USER_NAME"],
"<p>";
echo "<font color=green>E-mail address: </font><a href=mailto:",
$row["EMAIL_ADDRESS"], ">", $row["EMAIL_ADDRESS"],
"</a><p>";
// Display the information provided by the member. Empty fields
aren't displayed.
if ($row["DISABILITY_1" OR "DISABILITY_2" OR "DISABILITY_3" OR
"DISABILITY_4" OR "DISABILITY_5" OR "DISABILITY_6" OR
"DISABILITY_7" OR
"DISABILITY_8"]) {echo "<font color=green>Disability, disease, or condition:
</font>", $row[DISABILITY_1], ", ", $row[DISABILITY_2], ", ",
$row[DISABILITY_3], ", ", $row[DISABILITY_4], ", ", $row[DISABILITY_5], ",
", $row[DISABILITY_6], ", ", $row[DISABILITY_7], ", ", $row[DISABILITY_8],
"<p>";}
if ($row["LIFE_STORY"]){echo "<font color=green>Life story:
</font>", $row["LIFE_STORY"], "<p>";}
if ($row["PHOTO_URL"]){echo "<IMG HEIGHT=250 SRC=",
$row["PHOTO_URL"], "><p>";}
if ($row["PHOTO_URL"]){echo "<font color=green>Photo URL:
</font><a
href=", $row["PHOTO_URL"], ">", $row["PHOTO_URL"],
"</a><p>";}
if ($row["HOMEPAGE_URL"]){echo "<font color=green>Personal website
URL: </font><a href=", $row["HOMEPAGE_URL"], ">",
$row["HOMEPAGE_URL"],
"</a><p>";}
if ($row["CITY"]){echo "<font color=green>City: </font>",
$row["CITY"], "<p>";}
if ($row["STATE"]){echo "<font color=green>State: </font>",
$row["STATE"], "<p>";}
if ($row["COUNTRY"]){echo "<font color=green>Country:
</font>",
$row["COUNTRY"], "<p>";}
if (($row["BIRTHDATE"]) != "0000-00-00") {echo "<font
color=green>Age: </font>", $age, "<p>";}
if ($row["GENDER"]){echo "<font color=green>Gender:
</font>",
$row["GENDER"], "<p>";}
if ($row["EDUCATION"]){echo "<font color=green>Education:
</font>",
$row["EDUCATION"], "<p>";}
if ($row["PROFESSION"]){echo "<font color=green>Profession:
</font>", $row["PROFESSION"], "<p>";}
if ($row["MARITAL_STATUS"]){echo "<font color=green>Marital status:
</font>", $row["MARITAL_STATUS"], "<p>";}
if ($row["SEXUAL_ORIENTATION"]){echo "<font color=green>Sexual
orientation: </font>", $row["SEXUAL_ORIENTATION"], "<p>";}
if ($row["RELIGION"]){echo "<font color=green>Religion:
</font>",
$row["RELIGION"], "<p>";}
if ($row["RACE"]){echo "<font color=green>Racial or ethnic group:
</font>", $row["RACE"], "<p>";}
if ($row["HEIGHT"]){echo "<font color=green>Height:
</font>",
$row["HEIGHT"], " inches<p>";}
if ($row["WEIGHT"]){echo "<font color=green>Weight:
</font>",
$row["WEIGHT"], " pounds<p>";}
if ($row["SMOKING"]){echo "<font color=green>Smoking:
</font>",
$row["SMOKING"], "<p>";}
if ($row["DRINKING"]){echo "<font color=green>Drinking:
</font>",
$row["DRINKING"], "<p>";}
if ($row["LANGUAGE"]){echo "<font color=green>Language:
</font>",
$row["LANGUAGE"], "<p>";}
// Display banner ad.
echo "<center><iframe
src=http://leader.linkexchange.com/1/X1258133/showiframe?
width=468
height=60 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0
scrolling=no><a href=http://leader.linkexchange.com/1/X1258133/clickle
target=_top><img width=468 height=60 border=0 ismap
src=http://leader.linkexchange.com/1/X1258133/showle?></a></iframe><br><a
href=http://leader.linkexchange.com/1/X1258133/clicklogo
target=_top><img
src=http://leader.linkexchange.com/1/X1258133/showlogo?
width=468 height=16
border=0 ismap></a><br></center>";
}
}
?>
--
// This loop executes to display each record.
do {
// Uses class for displaying records
$my_records = new Display_Records;
$my_records -> display_records($row, $record_count);
// You've displayed one more record, so increment the record number.
++$record_count;
// Repeat the above loop while there is at least one more record, for a
maximum of 20 records.
} while( ($row = mysql_fetch_array($selectresult)) && ($record_count <=
20) );