什么是“ - >”意思?

时间:2011-04-04 20:15:08

标签: php syntax

  

可能重复:
  Reference - What does this symbol mean in PHP?
  In, PHP, what is the “->” operator called and how do you say it when reading code out loud?

这是一个非常新手的问题,所以提前道歉,但我看到->在示例代码中多次使用过,但我似乎无法在在线教程中找到任何解释它的功能。 (主要是因为Google将其视为搜索词 - doh!)

这是一个令我困惑的例子:

<?php
class customException extends Exception
{
public function errorMessage()
{
//error message
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
.': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
return $errorMsg;
}
}

$email = "someone@example.com";

try
  {
  //check if
  if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
    {
    //throw exception if email is not valid
    throw new customException($email);
    }
  //check for "example" in mail address
  if(strpos($email, "example") !== FALSE)
    {
    throw new Exception("$email is an example e-mail");
    }
  }

catch (customException $e)
  {
  echo $e->errorMessage();
  }

catch(Exception $e)
  {
  echo $e->getMessage();
  }
?> 

echo $e->errorMessage();等行中发生了什么?看起来它将变量$e传递给函数errorMessage(),但如果是这样,为什么不以更传统的方式进行呢?

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

它在面向对象编程中用于表示object-&gt; property

echo "$foo->bar"将回显$ foo的bar属性

答案 1 :(得分:2)

$e是一个对象。

该对象具有函数errorMessage()

因此,您正在调用$e的函数

答案 2 :(得分:2)

不,它不是范围解析运算符。 ::(也称为Paamayim Nekudotayim)是范围解析运算符,请参阅the manual

不,这不是一个功能。这是面向对象的编程,因此正确的术语是method

不,这不是财产。同样,它是method

我不知道->构造的任何术语。它用于调用方法或访问类的实例上的属性。在一个对象上。我想你可以把它称为“实例运算符”。

在您的具体情况下,这是一个方法调用。正在errorMessage对象上调用$e方法,该对象是customException类的实例。