Несколько вопросов по доступу к классу? - PullRequest
0 голосов
/ 01 ноября 2011
<?
class Contact {

    //protected $message = "Hello World";

    function __construct($message){
        echo $this ->message;
    }

    function getName() {

    }

}

$con = new Contact("Hello World");    

?>

<form method="post" action="Contact.php">
  1. Когда я компилирую этот класс, он не печатает «Hello World» Почему?
  2. Как я могу вызвать функцию getName () в своем действии формы. Является ли ниже правильный путь.

<form method="post" action={$con->getName()}>

1 Ответ

3 голосов
/ 01 ноября 2011

A) Вы не компилируете PHP

B) $message это не переменная экземпляра, это параметр:

function __construct($message){
    echo $message;
}

Способ, которым вы вводите вызовы ваших методов PHP в HTML:

<form method="post" action="<?php echo $con->getName(); ?>">

Ваш комментарий //protected $message = "Hello World" находится на правильном пути. Примерно так было бы идеально:

class Contact {

    protected $message = "Hello World";

    function __construct($message = null){
        $this->setMessage($message);
    }

    public function getMessage(){
        return $this->message;
    }

    public function setMessage($message = null){
        if($message !== null){
            $this->message = $message;
        }
    }
}

Используется так:

$con = new Contact();
$con->getMessage(); // "Hello World;
$con->setMessage("Goodbye World");
$con->getMessage(); // "Goodbye World"

$con2 = new Contact("Goodbye World"); 
$con2->getMessage(); // "Goodbye World"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...