Hata mesajı PHP örtülü aynı isimde bir sabit dizge olarak bilinmeyen bir belirteci ilan edeceği talihsiz olmasından kaynaklanmaktadır.
İşte bu (eksik tırnak işaretleri dikkat edin) bu yorumlamaya çalışıyor gibidir:
$_POST[department]
Sabit bir department
tanımlanan önceden olsaydı, bu PHP geçerli sözdizimi olacaktır tek geçerli yoludur. Yani ne yazık ki, daha doğrusu bu noktada bir Ölümcül hata ile ölmekten, bu Bildirimi sorunları ve sürekli aynı ad ve değer tanımlanmış sanki davranır:
// Implicit declaration of constant called department with value 'department'
define('department', 'department');
İşte bu hata mesajı alabilirsiniz çeşitli yolları vardır, ama hepsi aynı kök neden var - could sabit olması bir belirteç.
Strings missing quotes: $my_array[bad_key]
Bu sorun sizin durumunuzda ne olduğunu, ve işlem olmamıştır dize dizisi anahtarları var çünkü bu. Dize anahtarlarını Tespit hata çözecektir:
Değiştir:
$department = mysql_real_escape_string($_POST[department]);
...(etc)...
Için:
$department = mysql_real_escape_string($_POST['department']);
...(etc)...
Variable missing dollar sign: var_without_dollar
Eğer bir üye bir değişken veya $this->
gelen $
bırakmak, bu hata iletisi görebilirsiniz başka nedenidir. Örneğin, aşağıdakilerden birini benzer bir hata iletisini neden olur:
my_local; // should be $my_local
my_member; // should be $this->my_member
Invalid character in variable name: $bad-variable-name
_
, ortak bir durum olurdu yerine bir alt çizgi bir tire (-
) - Bir değişken adı izin verilmeyen bir karakter kullanmaya çalışırsanız benzer ama daha ince bir konu neden olabilir.
Örneğin, bu, Tamam beri underscores are allowed in variable names:
if (123 === $my_var) {
do_something();
}
Ama bu değildir:
if (123 === $my-var) {
do_something();
}
Bu aynı yorumlanır olacak:
if (123 === $my - var) { // variable $my minus constant 'var'
do_something();
}
Referring to a class constant without specifying the class scope
Eğer, ::
ile sınıf kapsamını belirlemek için, bu kapalı özledim eğer PHP bahsediyoruz düşünürler gereken bir sınıf sabit başvurmak için küresel bir define()
.
Örn:
class MyClass {
const MY_CONST = 123;
public function my_method() {
return self::MY_CONST; // This is fine
}
public function my_method() {
return MyClass::MY_CONST; // This is fine
}
public function my_bad_method() {
return MY_CONST; // BUG - need to specify class scope
}
}
Using a constant that's not defined in this version of PHP, or is defined in an extension that's not installed
Sadece modu seçeneği sabitleri örneğin, PHP yeni sürümlerinde bulunan bazı sistem tanımlı sabitleri vardır round()
such as PHP_ROUND_HALF_DOWN
sadece PHP 5.3 veya üstü var.
Yani PHP 5.2 bu özelliği kullanmak için çalıştı, ki:
$rounded = round($my_var, 0, PHP_ROUND_HALF_DOWN);
Bu hata mesajı almak istiyorum:
Use of undefined constant PHP_ROUND_HALF_DOWN - assumed
'PHP_ROUND_HALF_DOWN' Warning (2): Wrong parameter count for round()