在PHP中声明函数的正确方法?

时间:2009-11-21 05:44:40

标签: php

我不太清楚在php中声明函数,所以我会尝试一下。

getselection();

function getselection($selection,$price)
{
global $getprice;
switch($selection)
{
  case1: case 1:
        echo "You chose lemondew <br />";
        $price=$getprice['lemondew'].'<br>';
        echo "The price:".$price;
    break;

如果我做错了,请告诉我,我想以正确的方式做到这一点;另外,php.net有例子,但是对于newb来说它们有点复杂,我想当我变得精通时我会开始使用他们的文档,谢谢你没有火红。

请提供可能有助于我解决此问题的链接?

4 个答案:

答案 0 :(得分:1)

你的例子似乎对我有用。

foo('bar');
function foo($myVar)
{
  echo $myVar
}
// Output: bar

See this link for more info on user-defined functions

答案 1 :(得分:0)

你有一个合理的开始。现在您需要做的就是删除多余的case 1:,用switch关闭}语句,然后用另一个function关闭}。我假设全局数组$getprice已在您的代码中定义,但未在问题中显示。

答案 2 :(得分:0)

在调用函数之前声明函数是一种好习惯。它可以防止代码中出现不常见的错误行为。

答案 3 :(得分:0)

示例基本上是一个有效的函数定义(意味着它运行,除了Asaph提到的关闭括号),但不遵循best practices

  • 命名约定:当名称由两个或多个单词组成时,请使用camelCase或underscores_to_delineate_words。你使用哪一个并不重要,只要你保持一致。另请参阅Alex关于PHP naming conventions
  • 的问题
  • 选择一个好名字:“get”前缀表示“getter”或“accessor”; “getThing”形式的任何方法或函数都应该返回一个东西,并且在函数或对象外部没有可见的影响。样本函数可能更好地称为“printSelection”或“printItem”,因为它会打印所选项目的名称和价格。
  • 全球:一般来说,globals cause problems。一种替代方法是使用类或对象:使变量成为类的静态成员或对象的实例成员。另一种方法是将数据作为附加参数传递给函数,尽管具有太多参数的函数不是非常易读。
  • 开关非常有用,但并不总是最佳选择。在示例中,$selection可以轻松保存项目的名称而不是数字。这指向了使用开关的一种替代方法:在数组中使用索引(顺便提一下,它是如何在Python中完成的)。如果案例具有相同的代码但使用的值不同,则可以使用数组。如果你正在使用对象,那么polymorphism就是要走的路 - 但这本身就是一个话题。
  • $price参数似乎没有用处。如果您希望函数返回价格,请使用return statement
  • 当您调用该函数时,您忽略了传递任何参数。这将导致警告和通知,但会运行。