【问题标题】:Writing a function in php用php写一个函数
【发布时间】:2012-01-09 20:57:38
【问题描述】:

我正在尝试研究如何编写 php 函数,这样我就不必一遍又一遍地编写代码块,我正在玩耍并尝试编写这个,但它不起作用出于某种原因,谁能告诉我哪里出错了?

<?php
$greeting 'Hello';

function frank ()
{
$name = 'frank';
$2nd = 'robson';
echo $greeting;
echo $name;
echo $2nd;
}


echo frank()
?>

【问题讨论】:

  • 要么return the value you want to echo from the function,要么直接打电话给frank()(事先没有echo)。另外,第一行缺少=,最后一行缺少;
  • 伊恩,看看我的回答。我解释了。
  • 另外,变量名不能以数字开头($2nd 无效)

标签: php function echo


【解决方案1】:

您应该考虑返回一个字符串,而不是在您的函数中回显。也更喜欢传递参数而不是使用全局范围:

$greeting = 'Hello';

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


echo frank($greeting);

最后一个变量名以字母或下划线开头,所以$2nd不是一个有效的名字。
有关命名变量的更多信息,请参阅此this link

【讨论】:

    【解决方案2】:

    我哪里出错了?

    几个地方。

    但由于某种原因它不起作用

    这不是错误消息 - 如果你正确配置它,PHP 会给你关于它不理解的东西的有意义的消息。

    如果您收到错误消息,那么您应该将其包含在您的问题中。

    <?php
    $greeting 'Hello';
    

    这是第一个错误 - 这将导致解析失败。那里应该有一个赋值运算符,例如

    $greeting = 'Hello';
    

    下一个错误在这里:

    $2nd = 'robson';
    

    Variables names 必须以下划线或字母开头 - 不是数字

    echo frank()
    

    这里有 2 个错误。

    语句不以 ; 结尾- 它可能仍然可以解析,但非常混乱。

    frank 函数也不返回值来回显。

    【讨论】:

      【解决方案3】:

      在使用 echo 函数时,您必须返回字符串

      所以,做这样的事情

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

      其次,$greeting 是在函数定义之外声明的变量。所以,你不应该在函数定义中使用它。

      你的函数现在看起来像这样

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

      另外,第一行有错误。 $greeting 'Hello' 不正确。应该是$greeting = 'Hello'(您缺少= 符号)。

      【讨论】:

        【解决方案4】:

        首先,您需要传入 $greeting 变量以使其位于函数范围内 - 请参阅 PHP manual for variable scope。最好避免使用globals,因为它们更难调试和测试。

        其次,您错过了$greeting 变量的赋值。

        第三,你忘记了从函数返回值,所以它可以是echod。见PHP manual for functions

        第四,$2nd 不是一个有效的变量名。变量必须以字母开头。请参阅relevant manual page

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

        【讨论】:

        • 请解释反对意见。这是对这个问题的一个非常好的答案。
        • 嗨,是将 $greeting 传递给函数吗?我也很困惑的一件事是如何将函数外部定义的东西传递给函数,所以如果在函数内部我有 $a + $b ,在函数 $a = 2 和 $b = 2 之外,我如何将它们传递给变量内部使用?。
        【解决方案5】:

        我明白了,你想要运行它会返回一些字符串。 您可以将变量作为参数传递。 return 语句之后的内容将是您通过调用 frank() 得到的内容

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

        或者如果你想在函数中使用全局变量,你必须通过global 语句声明它

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

        【讨论】:

          【解决方案6】:
          <?php
          $greeting = 'Hello';
          
          function frank ()
          {
            global $greeting;
            $name = 'frank';
            $2nd = 'robson';
            echo $greeting;
            echo $name;
            echo $2nd;
          }
          
          
          frank();
          ?>
          

          您需要设置变量并且需要分号。

          【讨论】:

            猜你喜欢
            • 2014-03-08
            • 1970-01-01
            • 2011-11-01
            • 2023-03-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-04-18
            相关资源
            最近更新 更多