Apa yang saya temukan di internet.
\Blade::directive('hello', function ($expression) {
list($greet, $name) = explode(', ', $expression);
return "<?php echo {$greet} . ' ' . {$name}; ?>";
});
Di sini terasa saat runtime fungsi tersebut akan dipanggil. Lalu kenapa tidak dilakukan saja
\Blade::directive('hello', function ($expression) {
list($greet, $name) = explode(', ', $expression);
return $greet . ' ' . $name;
});
Saya telah melihat banyak contoh mengikuti pola return "<?php echo ..."
dan saya tidak mengerti maksudnya.
EDIT untuk memperjelas dari komentar dan jawaban, asumsi utama dicetak tebal:
Pada contoh pertama, $expression diledakkan dalam fungsinya, saya bertanya-tanya, bagaimana Blade bisa meledak secara dinamis hanya dari kode php yang dikembalikan? Kode seperti itu membuat saya percaya bahwa fungsi arahan dan kode yang dikembalikan dijalankan pada setiap rendering?
Kedua, jika pernyataan return berisi tag pembuka PHP, saya kira itu diproses sebagai skrip PHP standar, jadi mengapa tidak mengembalikan string?
return "<?php echo {$greet} . ' ' . {$name}; ?>";
berikut ini adalah hasil akhir yang seharusnya menggantikan arahan tersebut. Jika kamu kembali saja maka tidak akan ada apa-apa. Tanggung jawab Anda sebagai pengendali adalah melakukan apa yang ingin Anda lakukan. - person The Alpha   schedule 01.02.2018