php $ GLOBALS değişkenleri

3 Cevap php

Ben kod biraz yazıyorum ve () içermez ve ikinci komut dosyası içeren ana php script var, burada benim ikinci kodu pasajı:

echo ($GLOBALS['key($_REQUEST)']);

I trying ebeveynden bir anahtar ($ _REQUEST) yakala ve çocuk kullanmak değilim, ama bu işe yaramazsa ..

Ben komut satırını kullanarak komut dosyası çalıştırdığınızda şudur:

mbp:digaweb alexus$ php findItemsByKeywords.php test
PHP Notice:  Undefined index: key($_REQUEST) in /Users/alexus/workspace/digaweb/findItemsByKeywords.php on line 3
PHP Stack trace:
PHP   1. {main}() /Users/alexus/workspace/digaweb/findItemsByKeywords.php:0
mbp:digaweb alexus$ 

i globallerinin ayrıca tavsiye edilen yol değil, ama belki de ok bilmiyorum duydum ...

3 Cevap

$ _REQUEST Bir süper küresel değildir ve herhangi bir fonksiyon ya da komut dosyası içinde doğrudan mevcut olacak, bu yüzden çocuk komut geçirmeden hakkında endişelenmenize gerek yoktur. Komut satırından kullanılan zaman ben aşina olduğum bir yapılandırma seçeneği kullandığınız sürece Ancak, PHP, $ _REQUEST doldurmak değildir. Sen $ _SERVER ['argv'] dizi kullanmanız gerekir.

Globaller gerçekten de tavsiye edilmez. Eğer önerilen ne outis ile giderseniz daha kolay bir zaman uzun vadeli olacak. İşte bir örnek:

script1.php:
<?php
$file = $_SERVER['argv'][1]; // 0 is the script's name

require_once ('script2.php');

$result = doSomething ($file);
echo $result;
?>

script2.php:
<?php
function doSomething ($inputfile)
{
  $buf = file_get_contents($inputfile);
  $buf = strtolower($buf); // counts as something!
  return $buf;
}
?>

Bu örnek, anahtar ($ _REQUEST) kullanımını yapmaz, ama bunun amacı bu yüzden sadece $ _SERVER ['argv'] ile gitti ne olduğundan emin değilim.

Benim diğer cevap Yorumlarınız dayanarak, ben yapmak için çalışıyoruz anlamak düşünüyorum. Sadece dahil olan başka bir komut dosyası içine bir komut bir değişken geçmek için çalışıyoruz.

Sürece komut dosyası içeren önce bir değişken tanımlamak gibi, o dahil komut kullanılabilir. Örneğin:

// script1.php
$foo = 'bar';
include_once('script2.php');

// script2.php
echo $foo; // prints "bar"
echo $_GLOBALS[key($_REQUEST)];

Sadece tek tırnak işaretlerini kaldırmak gerekir. Açıkçası yok literal 'tuşuna ($ _REQUEST)' tuşu, arıyordu.

Her ne olsa yapmaya çalışıyoruz ... ne yapmaya çalışıyorsun bağlıdır?