まず第一に、Jared Farrish が既に述べたように、これは有効な PHP ではありません。そのpublic $myvar
代わりにpublic myvar
。変数名は常に で始まります$
。
クラスで変数を宣言すると、次のようになります。
<?php
class A
{
private $var;
}
その変数は、アクセスするとすべてのメソッドで自動的に使用可能になります$this
(メソッド static を除きますが、それは別の話です)。したがって、これは機能します:
<?php
class A
{
private $var;
public function foo () {
// This works
$this->var = 1;
// This is a completely different thing and does not change
// the contents of A::$var
$var = 1;
}
}
今global
は全く別物です。PHPでは、これを行うことはできません:
<?php
$global_a = 123;
function myfunc ()
{
// You wont actually change the value of $global_a with this
$global_a = 1234;
}
echo $global_a; // still 123
これでうまくいくと思うかもしれませんが、関数でグローバル変数を自動的に使用できるわけではありません。これがglobal
出番です:
<?php
$global_a = 123;
function myfunc ()
{
global $global_a;
$global_a = 1234;
}
echo $global_a; // now it will be 1234
PHP の変数スコープについて読んでから、PHP の OOP に進むことをお勧めします。
PHP は非常に風変わりな言語です。ほとんどの言語で特定の方法で機能するからといって、それが PHP でも機能するとは限りません。ほとんどの場合、それはありません。ですから、できるだけ自分自身を教育するのが最善です。
お役に立てれば