亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

訪問并返回函數中的私有屬性

訪問并返回函數中的私有屬性

PHP
幕布斯6054654 2023-09-08 21:31:17
我觀看了有關 PHP 的教程,在他的視頻中,他將屬性設置為private,這意味著我們無法在class. 但是當他創建一個返回該private屬性的函數時,他就能夠獲得echo該屬性。它對他有用,但只是不打印任何東西<?php        class Book {            private $rating;            public $title;            function __construct($title, $rating) {                $this -> title = $title;                $this -> rate = $rate;            }                         function getRating() {                return $this -> rating;            }        }        $book1 = new Book('Harry Potter', 'PG-13'); // object instance        echo $book1 -> getRating(); // Does not print anything?>更新我變了$this -> rate = $rate;到$this -> rate = $rating;但它仍然沒有打印任何東西
查看完整描述

2 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

在你的構造函數中__construct你應該做類似的事情:

$this -> rating = $rating;

不是:

$this -> rate = $rate;


查看完整回答
反對 回復 2023-09-08
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

你從哪里得到$rate變量?基本上沒啥地方用。如果$Rating進來,并且$this->Rating是全局變量,那么就沒有$Rate變量。


$this->title和 等之間也沒有空格。


代碼:


<?php

    

    // Use this function to make sure your error handling is tightest:

    error_reporting(E_ALL);

    

    // Start a new class

    class Book {

        

        // We are setting the rating to be private:

        private $rating;

        

        // And we are setting the title to be public: You could also use 'var' here instead:

        var $title;

        

        // This is the function behind new Book () .. it is a construction function.

        function __construct ($title, $rating) {

            

            // You have $title coming and you are setting the classes global variable to it as well:

            $this->title = $title;

            

            // Same as above, but this is private, so outside of this class you cant access it:

            $this->rating = $rating;

        } 

        

        // This the function to get the rating:

        function getRating () {

            

            // This is the variable from the 5th line now. It is in fact private, but since the

            // function is inside the class, then this function getRating is allowed to access the variable

            // there for it will print it out without problems:

            return $this->rating;

        }

    }

    

    // Init the class and insert some basic information:

    $book1 = new Book('Harry Potter', 'PG-13');

    

    // Will print out 'PG-13'

    echo $book1->getRating() . '<br>';

    

    // Title will show up, as it is public:

    echo $book1->title . '<br>';

    

    // But accessing the rating directly, will not show anything:

    echo $book1->rating . '<br>';

    

    // Since the rating is private, then it will ultimate throw an error,

    // so this will kill the script or show the error, depending on your hosting settings:

    echo 'This probably wount show up';

    // yup, it gives you:

    // Fatal error: Uncaught Error: Cannot access private property Book::$rating in [.........]

?>

輸出:

https://img1.sycdn.imooc.com//64fb227100019da405560077.jpg

希望這可以幫助您進一步學習更多 PHP。



查看完整回答
反對 回復 2023-09-08
  • 2 回答
  • 0 關注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號