heredoc içinde define'u nasıl kullanırsınız? Örneğin:define ve heredoc
define('PREFIX', '/holiday');
$body = <<<EOD
<img src="PREFIX/images/hello.png" /> // This doesn't work.
EOD;
heredoc içinde define'u nasıl kullanırsınız? Örneğin:define ve heredoc
define('PREFIX', '/holiday');
$body = <<<EOD
<img src="PREFIX/images/hello.png" /> // This doesn't work.
EOD;
the documentation regarding strings
DEFINE('PREFIX','/holiday');
$const = PREFIX;
echo <<<EOD
<img src="{$const}/images/hello.png" />
EOD;
sabitleri alınan yorumlanır değil!
Editörün Notu: Bu doğrudur. PHP, sabitini, heredoc bloğu içindeki herhangi bir karakter dizisinden ayırt etmenin hiçbir yolunu kullanamaz. Eğer 1'den fazla sabit varsa
Bu kuralın bir istisnası var gibi görünüyor: http://stackoverflow.com/a/12508992/367456 – hakre
, değişken kullanım zor olacaktır. böylece bu yöntemi
define('PREFIX', '/holiday');
define('SUFFIX', '/work');
define('BLABLA', '/lorem');
define('ETC', '/ipsum');
$cname = 'constant'; // if you want to use a function in heredoc, you must save function name in variable
$body = <<<EOD
<img src="{$cname('PREFIX')}/images/hello.png" />
<img src="{$cname('SUFFIX')}/images/hello.png" />
<img src="{$cname('BLABLA')}/images/hello.png" />
<img src="{$cname('ETC')}/images/hello.png" />
EOD;
Bunu önermek için önerinizi izledim çünkü ilginç olduğunu düşündüm, ancak aklıma öneriniz geldi test edilmedi, çünkü birçok hata veriyor. – hakre
Cevabı değiştirdim. –
Bu benim için iyi çalışıyor! –
Teşekkür deneyin! Küçük bir not eklemek: '$ const/images/hello.png' da çalışır. Bu örnekte – moey
küme parantezleri gerekli değildir. – wlf
Ayrıca '$ consts = get_defined_constants();' tüm tanımlarını almak ve daha sonra '{$ consts ['PREFIX']}' ile erişmek için kullanabilirsiniz. – PhoneixS