关于php:->是什么意思?

What does “->” mean?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
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?

这是一个很新的问题,所以提前道歉,但我已经看到->在示例代码中使用了好几次,但我似乎在在线教程中找不到任何解释。(主要是因为谷歌忽略了它作为一个搜索词-doh!)

下面是一个让我困惑的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
class customException extends Exception
{
public function errorMessage()
{
//error message
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
.': '.$this->getMessage().' is not a valid E-Mail address';
return $errorMsg;
}
}

$email ="[email protected]";

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(),但是如果是这样,为什么不以更传统的方式进行呢?

谢谢你的帮助。


它在面向对象编程中用来表示对象->属性

echo"$foo->bar"将呼应$foo的bar属性。


不,它不是范围解析运算符。::(也称为paamayim-nekudotayim)是范围解析操作符,请参见手册。

不,它不是一个函数。这是面向对象的编程,所以正确的术语是method

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

我不知道->结构的任何术语。它用于调用方法或访问类实例上的属性。在物体上。我想您可以把它称为"实例操作符"。

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


$e是一个对象。

该对象具有errorMessage()函数

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