学习PHP类,变量消失了

Har*_*rry 1 php class

我正在努力教自己如何使用PHP的类(我有一个C#背景),我很难理解我做错了什么.

我定义了book各种变量,如阶级author,isbn等我再自己创建一个book名为$book,使用默认的构造函数值传递.

问题是最后一行:

echo $book->name;

我预计它会输出"Perdido Street Station",但它不输出任何东西.我似乎要做的是将变量设置为:

$book->name = "Perdido Street Station";

<?php
class book {
    var $name;
    var $isbn;
    var $author;
    var $publisher;
    var $publish_date;
    var $pages;

    function book($_name, $_isbn, $_author, $_publisher, $_publish_date, $_pages) {
        // type checking
        if (!is_string($_name) || !is_string($_isbn) || !is_string($_author) || !is_string($_publisher) || !is_string($_publish_date) || !is_int($_pages)) {
            return false;
        }
        $name         = $_name;
        $isbn         = $_isbn;
        $author       = $_author;
        $publisher    = $_publisher;
        $publish_date = $_publish_date;
        $pages        = $_pages;
    }
}

$book = new book("Perdido Street Station", "0330534238", "China Miéville", "Pan", "2011-05-2011", 867);
echo $book->name;
?>
Run Code Online (Sandbox Code Playgroud)

必须有明显的东西,我在这里做错了.有帮助吗?

nic*_*ckb 5

您需要使用$this->分配给类的变量:

$this->name         = $_name;
$this->isbn         = $_isbn;
$this->author       = $_author;
$this->publisher    = $_publisher
$this->publish_date = $_publish_date;
$this->pages        = $_pages;
Run Code Online (Sandbox Code Playgroud)