可能重复:
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()
,但如果是这样,为什么不以更传统的方式进行呢?
感谢您的帮助。
答案 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
类的实例。