2011-04-04 52 views
8

Olası çoğaltmaları:
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?"->" ne anlama geliyor?

Bu gerçekten yeni soru ama -> örnek kodda birkaç kez kullanılan gördüm önceden özür, bu yüzden, ama ben ne yaptığıyla ilgili çevrimiçi derslerde herhangi bir açıklama bulamıyor. (Google arama terimi olarak bunu görmezden başlıca nedeni - doh!)

Burada beni karıştırır bir örnek:

<?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 = "[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(); 
    } 
?> 

Ne tür echo $e->errorMessage(); olarak hatlarında oluyor? $e değişkenini errorMessage() işlevine geçirmesi gibi görünüyor, ancak eğer öyleyse, neden sadece daha geleneksel bir şekilde yapmıyorsunuz?

Yardımlarınız için teşekkür ederiz.

+0

Bu iki nesneden birinin kopyası değil, yine de teşekkürler. –

+0

İkinci olası yinelemenin yanlış olduğunu görmek için [burada] (http://stackoverflow.com/questions/3037526/where-we-use-object-operator-in-php) bakın. –

+0

Teşekkürler. Bu yararlı. –

cevap

2

Hayır, bir kapsam çözünürlük operatörü değil $e 'ın fonksiyonu aradığınız işlevi vardır Yani

. :: (Paamayim Nekudotayim olarak da adlandırılır), kapsam çözünürlük operatördür, bkz. the manual.

Hayır, bu bir işlev değildir. Bu nesne yönelimli programlamadır, bu yüzden doğru terim method'dur.

Hayır, bu bir özellik değildir. Yine, bu bir method.

-> yapısı için herhangi bir terminolojinin farkında değilim. Yöntemleri çağırmak veya bir sınıfın bir örneği örneğine erişmek için kullanılır. Bir nesnede. Sanırım bunu "örnek operatör" olarak değerlendirebilirsiniz.

Özel durumunuzda bir yöntem çağrısıdır. errorMessage yöntemi, customException sınıfının bir örneğidir, $e nesnesinde çağrılıyor.

+2

Görünüşe göre resmi adı "nesne operatörü" dir. –

4

O object- belirtmek için nesne yönelimli programlama kullanılır> mülkiyet

echo "$foo->bar" $ foo

2

$e bar özelliğini yankı bir nesnedir. Nesne

errorMessage() nedenle