web-gelistirme-sc.com

Katı uyarı: Sadece değişkenler referans ile iletilmelidir

Aşağıdaki hatayı alıyorum:

Katı uyarı: Yalnızca değişkenler include () 'de (/home/sites/dev/theparce/sites/all/themes/parce/block--block--3.tpl.php satır 18) referans alınarak iletilmelidir.

Bu, hataya neden olan blok kodudur.

if ($user_gallery) {
  print render(node_show($user_gallery));  // Line 18
  print drupal_render ($user_gallery_edit);

}
else {
  print drupal_render($user_gallery_new);
}

Beklendiği gibi yazdırılsa bile neden bu hatayı alıyorum?

21
silkAdmin

Bu hata, bir işlev parametre olarak bir başvuru beklediğinde gerçekleşir, ancak başvuru almaz.

Sizin durumunuzda, render()render(&$element) olarak tanımlanır, ancak node_show()node_show($node, $message = FALSE) değil, &node_show($node, $message = FALSE) olarak tanımlanır.
Aynı şey drupal_render() için de geçerlidir, çünkü fonksiyon drupal_render(&$elements) olarak tanımlanır .

Referans ile Geçiş bölümünde açıklandığı gibi, bir fonksiyon bir referans parametresi gerektirdiğinde, fonksiyona geçebilirsiniz:

  • Değişkenler (örneğin, başvuru döndürmeyen bir işlevin sonucunu içeren geçici bir değişken)

  • İşlevlerden döndürülen referanslar

Diğer ifadeler kullanıldığında sonuç tanımsızdır ve PHP sürümüne bağlıdır).

  • render(node_show()) PHP 5.0.5 sürümünde, PHP 5.1.1 sürümündeki katı standart bildirimi ve = PHP 7.0.0

  • render(5) önemli bir hata üretir

  • render(new DateTime()) PHP 7.0.7)

52
kiamlaluno