Как использовать глобальную переменную для инициализации свойства класса? - PullRequest
0 голосов
/ 25 июня 2018

Я использую PHP 7.2.6

Я знаю, что "переменная, объявленная вне функции, имеет ГЛОБАЛЬНУЮ ОБЛАСТЬ и может быть доступна только вне функции".

Я хочу, чтобы в моем классе уже была объявлена ​​глобальная переменная.

Я хочу инициализировать свойство класса, используя эту глобальную переменную.

Для этого я попробовал следующий код:

<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

class foo
{
    var $foo;

    function __construct()
    {
        $this->foo = $str;
    }
}

$foo = new foo();
echo $foo->foo;
?>

В моем браузере появилось следующее уведомление:

Notice: Undefined variable: str in hello.php on line 14

Я не понимаю, почему я получаю это уведомление.

У меня нет доступа к глобальной переменной $str внутри какой-либо функции.Я использую его внутри класса.

Пожалуйста, помогите мне в этом отношении, а также объясните мне, как я должен использовать глобальную переменную для инициализации свойства класса?

1 Ответ

0 голосов
/ 25 июня 2018

Для доступа к глобальной переменной вам нужно использовать глобальную переменную с ключевым словом global, Во-вторых, ваш модификатор и класс имеют одно и то же имя, которое afaik может сбить с толку компилятор, см. Фрагмент ниже

Нет, не

   <?php

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

class foo
{
    public  $foo;

    function __construct()
    {
        global $str;
        $this->foo = $str;
    }


}

$foo = new foo();
echo $foo->foo;
?>

Отрывок

Почему бы не использовать глобальные переменные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...