21

I am getting this error in this PHP code on line 3, what could be wrong? This code has been taken from php manual user notes by frank at interactinet dot com

<?php

public function myMethod()
{
return 'test';
}

public function myOtherMethod()
{
return null;
}

if($val = $this->myMethod())
{
 // $val might be 1 instead of the expected 'test'
}

if( ($val = $this->myMethod()) )
{
// now $val should be 'test'
}

// or to check for false
if( !($val = $this->myMethod()) )
{
// this will not run since $val = 'test' and equates to true
}

// this is an easy way to assign default value only if a value is not returned:

if( !($val = $this->myOtherMethod()) )
{
$val = 'default'
}

?> 
2
  • 1
    Looks like this is supposed to be part of a class definition. This won't run as is.
    – deceze
    Commented Nov 12, 2012 at 9:44
  • in addition, the code is showcasing bad programming, something you should not do. Why would you want to use the code?
    – eis
    Commented Nov 12, 2012 at 9:49

2 Answers 2

56

The public keyword is used only when declaring a class method.

Since you're declaring a simple function and not a class you need to remove public from your code.

3
  • 2
    what's the difference between a public function in a class and a function out in the open? Commented Jan 3, 2014 at 18:01
  • 9
    You can also hit this error from not closing a bracket & that runs into the next function... It will throw this error on that function. That's what I did. Don't be like me. Commented Nov 2, 2018 at 15:19
  • @Tanner_Gram I did what you did so I checked every single braces, and it works Commented Dec 16, 2020 at 4:59
3

You can remove public keyword from your functions, because, you have to define a class in order to declare public, private or protected function

Not the answer you're looking for? Browse other questions tagged or ask your own question.