Возврат объекта в необходимый файл и ссылка на него - PullRequest
0 голосов
/ 12 января 2020

Предположим, у нас есть файл (foo.php):

<?php
// foo.php
$a = new Foo();
return $a; //this is the part that I'm questioning

Я видел два подхода к использованию $a:

//in this case, bar.php doesn't have the "return" statement
require('foo.php');
$a->run();

и

$a = require('foo.php');
$a->run();

Мой вопрос: зачем действительно нужны оператор return и второй подход? Есть ли какая-то разница в фактическом эффекте или производительности?

- edit - В качестве ориентира эта «стратегия» (с возвратом) встречается как минимум в некоторых версиях CodeIgniter и Laravel.

1 Ответ

1 голос
/ 12 января 2020

Практической разницы нет.

В обоих случаях переменная $a в конечном итоге будет определена в основном скрипте.

Оба варианта не идеальны. В файлах, которые нужно включить, не должно быть никаких логик c, только декларации.

Во всяком случае, это будет лишь немного лучше:

<?php
//foo.php
return new Foo();
//bar.php
$foo = require 'foo.php';

Таким образом, по крайней мере, вы может определить любую переменную, которую вы хотите в скрипте-потребителе, и вам не нужно знать, как называется переменная, определяемая foo.php.

...