Sıkı uyarı: Yalnızca değişkenler referansa göre iletilmelidir.


21

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

Kesin uyarı: include () içindeki sadece değişkenler referansla iletilmelidir (/home/sites/dev/theparce/sites/all/themes/parce/block--block--3.tpl.php satır 18).

Bu, bu hataya neden olan blok koddur.

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?

Yanıtlar:


52

Bu hata, bir işlev parametre olarak bir başvuru beklerken ortaya çıkar, ancak başvuru alamadı.

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

Referansa Göre Geçiş bölümünde açıklandığı gibi , bir fonksiyon bir referans parametresi gerektirdiğinde, fonksiyona geçiş yapabilirsiniz:

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

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

Diğer ifadeleri kullanarak, sonuç tanımlanmamıştır ve PHP sürümüne bağlıdır.

  • render(node_show()) PHP 5.0.5'te önemli bir hata, PHP 5.1.1'de katı bir standart bildirimi ve PHP 7.0.0'da bir bildirim oluşturur

  • render(5) önemli bir hata üretir

  • render(new DateTime()) PHP 7.0.7’de bir bildirimde bulunuyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.