2016-10-16 16 views
1

私のコードをきれいに保つためにいくつかのクラスをライブラリにエクスポートしようとしていますが、私はこのコードがうまく動作しない理由を知りません:( インクルードファイル。。 Gerät.php:PHPでubuntuサーバー上のクラスライブラリを含む問題

間違いなく私がローカルクラスを定義したときは問題とtestgerätが送信されなかったにもあった ロードされるされる

私はいつも、私はこの小さなサンプルを使用していますので、最初はシンプルなものを維持しよう

<?php 
echo "loading Gerät<br>"; 
class Gerät{ 
    function Gerät(){ 
     $this->name = "testgerät"; 
    } 
} 
?> 

index.php

<?php 
include "/var/www/html/aiberry/objects/Gerät.php"; 

echo "My first PHP script!<br>"; 


$test = new Gerät(); 

echo $test->name; 
?> 

のindex.php
loading Ger�t 
My first PHP script! 

の出力は、これは名前空間の問題だろうか?

編集:私は、実際の問題に関して混乱を引き起こしてごめんなさい: 私は実際には出力を期待しています:

loading Ger�t 
My first PHP script! 
testgerät 

私は私でデバッグを有効にする方法を知っていたならば、おそらくメッセージ伝えるになるだろう私はクラス "Gerät"がないことを私に教えてください。しかし私のパラドックスは、出力 "loadGerät"がそのファイル内に書かれているため、Gerät.phpが確実にロードされているということです。 class.phpへのクラスの単純なコピー貼り付けは、Gerät.phpの処理が終わった後にクラスが失われている名前空間の問題または同様のことしか考えられないように、望ましい出力を提供します。

+0

を意味し、実際に何をして「このdoesntのは、働くように見える」ん? _正確に何があなたの問題ですか? – arkascha

+0

**あなたはクラスネームや変数や他のすべての文字列ではエキゾチックな文字を使うべきではありません。 PHPの値。 – gskema

+0

@gskema「エキゾチックなキャラクター」や「特殊キャラクター」といったものはありません。文字だけ、たくさんのエム・バガーたちがいる。実際には、これらのドイツ語のウムラウトはPHPクラス名で有効です。それらの文字がファイル名でも使われているとすれば、それは問題を引き起こすかもしれません... – arkascha

答えて

1

私は、2つのファイル間で異なる文字セットのエンコーディングを使用していると思いますが、Gerät.phpがindex.phpの同じ文字セットエンコーディングで保存されていればテキストエディタで確認できますか?一般的には、PHP識別子に非ASCII文字(クラス名、変数名など)を避けるためには良い考えです

関連する問題