Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1174
  • Last Modified:

"Missing argument 1 for function" error in PHP

I haven't posted the whole page's code but I will if I need to. I've just included all the parts related to this function.

I'm trying to make a function (funhc) to display the contents of an array later in the page. But when I try the code, I get the following error:
Warning: Missing argument 1 for funhc(), called in test3.php on line 338 and defined in test3.php on line 308

I have 5 different functions that work similarly and I receive the error on all of them. Could anyone help me and point out where my mistake is?
<?php do { ?>
  <?php
				
//tests to see if the last change value is empty (therefore never set)
if (isset($row_taskshc['update'])) {
				
$thisday = date("Y-m-d");
						
//sets the last change date to a variable $date
$date = $row_taskshc['update']; 
 
//format the date for mktime() function -- you need day, month, year
$year = substr($date, 0,4); 
$month = substr($date, 5, 2); 
$day = substr($date, 8, 2); 
 
//sets the frequency to a variable $freq
$freq = $row_taskshc['freq'];
 
//sets the variable to hold the new date. Calculates the new date by 
//evaluating the lastchange date and adding the frequency amount measured in months
$new_datecar = date("Y-m-d", mktime(0, 0, 0, $month +$freq, $day , $year)); 
 
date_diff("$thisday", "$new_datecar");
						
							
if ($ndays <= 15) {
$arrhc[] = array('task' => $row_taskshc['task'], 'adate' => $new_datecar); 
 }		
}
} while ($row_taskshc = mysql_fetch_assoc($taskshc)); 
 
function funhc($arrhc) {
if(empty($arrhc))
   {     return false;   }
	foreach($arrhc as $element) 	{
	$hc_taskelm = $element["task"];
	$hc_dateelm = $element["adate"];
	echo "<b>$hc_taskelm</b> is due on <b>$hc_dateelm</b><br /><br />";
	}
	}
 
funhc();
?>

Open in new window

0
kentcommunications
Asked:
kentcommunications
2 Solutions
 
tg_wilkCommented:
If you want to be able to omit some arguments, try assigning the default value. Furthermore, checking for array seems more appropriate then checking if the argument is empty.
function funhc($arrhc = NULL) {
if(!is_array($arrhc))
   {     return false;   }
        foreach($arrhc as $element)     {
        $hc_taskelm = $element["task"];
        $hc_dateelm = $element["adate"];
        echo "<b>$hc_taskelm</b> is due on <b>$hc_dateelm</b><br /><br />";
        }
}

Open in new window

0
 
Beverley PortlockCommented:
Your mistake is that you are calling funhc like this

funhc();

rather than like this

funhc( $someVariableOrOther );

Either pass a variable or alter the function definition as tg_wilk has outlined.
0
 
kentcommunicationsAuthor Commented:
Works correct now. A big thanks to both of you!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now