Değişkene require_once

4 Cevap php

Ben sonucu görüntülemek ve bu gibi değişken içine kaydedin require_once ("dnm.php") diyoruz ama değil istiyorum:

$test = require_once('dnm.php');

//some operations like $test = preg_replace(…);

echo $test;

Bu mümkün mü?

...........................

Teşekkürler çocuklar! :)

Çözüm:

dnm.php

<?php
$var = '/img/hello.jpg';

$res = <<<test

<style type="text/css">
body{background:url($var)#fff !important;}
</style>

test;

return $res;
?>

main.php

<?php
$test = require_once('dnm.php');

echo $test;
?>

4 Cevap

Bu mümkün mü?

Evet, ama gerekli dosyasında açık return yapmanız gerekir:

test.php

<? $result = "Hello, world!"; 
  return $result;
 ?>

 index.php
 $test = require_once('test.php');  // Will contain "Hello, world!"

Bu nadiren yararlıdır - Konrad'ın çıktı tamponunu tabanlı cevap giriş veya Adam'ın file_get_contents biri - muhtemelen ne istediğinizi daha uygundur.

"Sonuç" muhtemelen bir dize çıktı?

Bu durumda ob_start dedi çıkışını tampon kullanabilirsiniz:

ob_start();
require_once('test.php');
$test = ob_get_contents();

EDIT Düzenlenen sorudan bunu dahil dosyanın içinde bir function sahip olmak istiyorsanız oldukça benziyor. Her durumda, bu muhtemelen (much!) temiz bir çözüm olurdu:

<?php // test.php:

function some_function() {
    // Do something.
    return 'some result';
}

?>

<?php // Main file:

require_once('test.php');

$result = test_function(); // Calls the function defined in test.php.
…
?>

file_get_contents dosyasının içeriğini alacak. Aynı sunucu ve (yerine url den) yol tarafından başvurulan üzerine ise, bu test.php içeriğini alacak. Uzaktan veya url tarafından başvurulan varsa, bu komut dosyası çıkışını alırsınız.

php online manual bu çok konu hakkında çok yararlı tartışma bir sürü var. Burada önerilen ne bazıları gibi orada söz edilir.