プロが教えるわが家の防犯対策術!

Apache/1.3.27を使っています。
下記コードをローカルで表示すると
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\phpdev\www\ajax\sql.php on line 11
というエラーが出てしまいます。
なぜエラーになるのか原因が分かりません。
アドバイスを頂けないでしょうか。

<html>
<head><title>PHP TEST</title></head>
<body>
<?php

$tv = new Television();
$tv->$channelNo = 8;
$tv->dispChannel();

class Television{
public $channelNo;

function dispChannel(){
print('現在のチャンネルは'.$this->channelNo);
}
}
?>
</body>
</html>

A 回答 (2件)

PHP4にはクラス変数(メンバ変数・プロパティ)に、public等の指定ができません。


これは、PHP5から追加された機能です。
PHP4ではvarで宣言します、そして宣言されたものはすべてpublicになります。
※private変数は存在しません。

public $channelNo;

var $channelNo;

参考にしているのは、PHP5のソースなのでPHP4ではエラーが出るというだけで、該当サイトが間違っているわけではありません。
※PHP5のソースをPHP4で動かそうとしていう、質問者様の行動が間違っているだけです。

現在ではほとんどのレンタルサーバはPHP5が主流ですし、どっちみちPHP習得に時間が掛かるでしょうから、PHP4で動かす意味が今後ますますなくなっていくだけだと思います。
ローカルのテスト環境もPHP5を入れ直してみてはいかがですか?
    • good
    • 0
この回答へのお礼

有難うございました。
試してみます。

お礼日時:2012/01/22 21:59

『publicでエラーになる』んだったら、PHP4で動かしてるんじゃない?



$tv->$channelNo = 8;
↑こんなわけの判らない事をしている部分もあるけれど、11行目ではないし一旦無視。
    • good
    • 0
この回答へのお礼

PHPは4.2.3です。
こちらのサイトを参考にやっているのですが、
http://www.phpbook.jp/tutorial/member/index1.html
PHPのヴァージョンを落とさないとできないのでしょうか。
それかPHP4用の書き方というのがあるのでしょうか。

お礼日時:2012/01/20 20:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!