My validate function looks like that
function validate($data, $data2 = 0, $type)
{
...
Function call example
if ($result =
function validate($data, $data2, $data3, $data4, $data5)
im a beginner but i think that you can use a thousand arguments as long as you call like that
if ($result = validate($lname, 'name','','','') !== true)
Notice that starting with PHP 7.1 this will throw a PHP Fatal error, not just a warning:
PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function validate(), 2 passed in /path/to/file.php on line X and exactly 3 expected
More info: http://php.net/manual/en/migration71.incompatible.php
Missing argument 3 ($type) for validate()
Always list optional arguments as the last arguments. Since PHP doesn't have named parameters nor "overloading ala Java", that's the only way:
function validate($data, $type, $data2 = 0) {
}
You should at least set the $type in this line:
function validate($data, $data2 = 0, $type)
at NULL
or ''
as you can see here:
function validate($data, $data2 = 0, $type = null)
PHP let you to set a value for the parameters, but you can't define a parameter WITHOUT a preset value AFTER parameter(s) which HAVE a preset value. So if you need to always specify the third param, you have to switch the second and the third like this:
function validate($data, $type, $data2 = 0)
From http://php.net/manual/en/functions.arguments.php
Note that when using default arguments, any defaults should be on the right side of any non-default arguments; otherwise, things will not work as expected
Your should switch the second and third arguments of the function, making the optional argument the last one. So it becomes:
function validate($data, $type, $data2 = 0)
{ ....