-1

Here php code

define('SITE_NAME','example');
define('SITE_EMAIL_ID','abc@exampl.com');

function sendmail($to, $subject="Mail from ".SITE_NAME, $message=null, $from=SITE_EMAIL_ID, $bcc=null, $cc=null)
    {
    .....
    }

shows error Parse error: syntax error, unexpected '.', expecting ')' in functions.php on line 4

4 Answers4

0
define('SITE_NAME','example');
define('SITE_EMAIL_ID','abc@exampl.com');

$subject="Mail from ".SITE_NAME;
function sendmail($to, $subject , $message=null, $from=SITE_EMAIL_ID, $bcc=null, $cc=null)
    {
    //
    }
Surabhil Sergy
  • 1,946
  • 1
  • 23
  • 40
0

Change from

function sendmail($to, $subject="Mail from ".SITE_NAME, $message=null, $from=SITE_EMAIL_ID, $bcc=null, $cc=null)

To

function sendmail($to, $subject="Mail from {SITE_NAME}", $message=null, $from=SITE_EMAIL_ID, $bcc=null, $cc=null)

Or

You can assign value of constant to variable before function like

$subject="Mail from ".SITE_NAME;

Then change from

function sendmail($to, $subject="Mail from ".SITE_NAME, $message=null, $from=SITE_EMAIL_ID, $bcc=null, $cc=null)

To

function sendmail($to, $subject , $message=null, $from=SITE_EMAIL_ID, $bcc=null, $cc=null)
Muhammad Hassaan
  • 7,296
  • 6
  • 30
  • 50
  • Thanks dear hassaan but {SITE_NAME} is printed as it is. It is not working then before function assign itbto variable is not suitable for my criteria. Thanks for your answer. – sadakpramodh Aug 21 '15 at 12:04
0

Please read this link

http://php.net/manual/en/functions.arguments.php

However, this feature is included as of PHP 5.6.0. See this page for more information: http://php.net/migration56.new-features#migration56.new-features.const-scalar-exprs

"The default value must be a constant expression" is misleading (or even wrong). PHP 5.4.4 fails to parse this function definition:

function htmlspecialchars_latin1($s, $flags = ENT_COMPAT | ENT_HTML401) {}

This yields a

PHP Parse error: syntax error, unexpected '|', expecting ')'

although ENT_COMPAT|ENT_HTML401 is certainly what a compiler-affine person would call a constant expression.

The obvious workaround is to use a single special value ($flags = NULL) as the default, and to set it to the desired value in the function's body

if ($flags === NULL) { $flags = ENT_COMPAT | ENT_HTML401; })
Muhammad Hassaan
  • 7,296
  • 6
  • 30
  • 50
ashok
  • 81
  • 2
-1

You cannot do that. PHP does not allow variable names as default values for a function.

sraje
  • 134
  • 1
  • 6