Writing a function in php

后端 未结 6 2126
庸人自扰
庸人自扰 2020-12-22 10:16

I am trying to work out how to write php functions, so that I don\'t have to keep writing a block of code over and over again, I am having a play around and tried writing th

相关标签:
6条回答
  • 2020-12-22 10:27

    Firstly, you need to pass in the $greeting variable for it to be in the functions scope - see the PHP manual for variable scope. It is best avoid using globals as they are harder to debug and test.

    Secondly, you have missed out the assignment for the $greeting variable.

    Thirdly, you have forgotten to return the value from the function so it can be echod out. See the PHP manual for functions.

    Fourth, $2nd is not a valid variable name. Variables must start with a letter. See the relevant manual page.

    $greeting = 'Hello';
    
    function frank ($greeting) {
        $return = '';
        $name = 'frank';
        $second = 'robson';
        $return .= $greeting;
        $return .= $name;
        $return .= $second;
        return $return;
    }
    
    echo frank($greeting);
    
    0 讨论(0)
  • You have to return the string as you are using your function with echo

    So, do something like this

    //this is inside frank
    $ret = $greeting.$name.$2nd;
    return $ret;
    

    Second, $greeting is a variable declared outside the function definition. So, you should not use it inside the function definition.

    You function will now look like this

    function frank ()
    {
    $greeting = 'hello';
    $name = 'frank';
    $2nd = 'robson';
    $ret = $greeting.$name.$2nd;
    return $ret;
    }
    

    Also, there is an error in the first line. $greeting 'Hello' is incorrect. It should be $greeting = 'Hello' (You are missing the = sign).

    0 讨论(0)
  • 2020-12-22 10:37

    where I am going wrong ?.

    Several places.

    but it doesnt work for some reason

    That's not an error message - PHP will give you meaningful messages about stuff it doesn't understand if you configure it properly.

    If you are getting an error message then you should have included it in your question.

    <?php
    $greeting 'Hello';
    

    Here's the first error - which will cause a parse failure. There should be an assignment operator in there e.g.

    $greeting = 'Hello';
    

    The next error is here:

    $2nd = 'robson';
    

    Variables names must begin with an underscore or letter - not a number

    echo frank()
    

    2 errors here.

    The statement is not terminated with a ; - it may still parse OK but is very messy.

    Also the frank function doesn't return a value to echo.

    0 讨论(0)
  • 2020-12-22 10:40

    Instead of echoing inside your function you should consider returning a string with it. Also prefer passing a parameter instead of using global scope :

    $greeting = 'Hello';
    
    function frank ($funcGreetings)
    {
        $name   = 'frank';
        $second = 'robson';
        //Concat variable together an return them
        return $funcGreetings.' '.$name.' '.$second;
    }
    
    
    echo frank($greeting);
    

    Finally a variable name start with a letter or an underscore so $2nd is not a valid name.
    See this this link for more info on naming variable

    0 讨论(0)
  • 2020-12-22 10:40

    I see, you that you want to function which will return something string. You can pass variable as an argument. Things after return statement will be what you get by calling frank()

    $greeting = 'Hello';
    function frank ( $greeting) {
        $name = 'frank';
        $second = 'robson';
        return  $greeting." ".$name." ".$second;
    }
    
    echo frank ( $greeting );  
    

    Or if you want to use global variable in the function you must declared this by a global statement

    $greeting = 'Hello';
    function frank ( $greeting) {
            global $greeting;
            $name = 'frank';
            $second = 'robson';
            return  $greeting." ".$name." ".$second; // 
        }
    echo frank ( $greeting );  
    
    0 讨论(0)
  • 2020-12-22 10:48
    <?php
    $greeting = 'Hello';
    
    function frank ()
    {
      global $greeting;
      $name = 'frank';
      $2nd = 'robson';
      echo $greeting;
      echo $name;
      echo $2nd;
    }
    
    
    frank();
    ?>
    

    You need to SET the variable and you need SEMICOLONS.

    0 讨论(0)
提交回复
热议问题