$ GLOBALS ["test"] ve küresel $ testi arasında herhangi bir değişik var mı?

2 Cevap php

herhangi biri bana arasındaki temel farklılıkları iletebilirsiniz olabilir

$GLOBALS["test"] and global $test

ve, bu mantıklı olacaktır, i yerine $GLOBALS["test"] kullanırsanız $_SESSION['test']?

2 Cevap

and, will it make sense that, if i use $GLOBALS["test"] instead of $_SESSION['test']?

Hayır, session küresel geçerli bir değişken farklı bir şeydir.

$GLOBALS

An associative array containing references to all variables which are currently defined in the global scope of the script. The variable names are the keys of the array.

http://php.net/manual/en/reserved.variables.globals.php

Explanation:

$GLOBALS Betiğinize genelinde bir ilişkisel dizidir, kullanmaya gerek yoktur global $test

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

$GLOBALS["test"] ve global $test arasında hiçbir fark yoktur. Her ikisi de kötü saf ve kullanılmamalıdır.

Why are they evil?

  1. Aniden kod bazı dış çevreye bağlı olur, onun taşınabilirliği tepetaklak düşüyor. Bazı değeri ile, kimse doğru değeri ne biliyor, kimse bilmiyor yerde tanımlanmış bazı değişken gerektirir.
  2. Topların sayısı: $test diyelim, bir şey hakkında bir bilgi saklamak gerekiyordu olduğunu düşünün. Orada böyle bir değişken olduğunu ve bunu saklamak için varsayalım ne saklamak kadar her şey yolunda. Eğer bu değişkeni silmek veya başka bir amaç için kullanmaya karar verirseniz Ancak ne olur? Bah, ölümcül hatalar ortada yokken pop! Sen sadece bir değişkenin değerini değiştirmek ve her şey parçalanıyor, her şey iyi çalıştı, neler oluyor bilmiyorum.