C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: PHPの変数でドルマークの有り無しの違い


(過去ログ 176 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■101087 / inTopicNo.1)  PHPの変数でドルマークの有り無しの違い
  
□投稿者/ こうじ (1回)-(2023/01/05(Thu) 16:13:05)

分類:[その他の言語] 

ほぼC#やVB系の言語で仕事をしていて、以前に少しだけPHPを使ったことがありました。
その時は、ほぼ変数には$を付けて変数を定義すると思って書いていたのですが、
最近、本格的にPHPを勉強し始めて、$マークを付けずに変数を定義しているソースがあり、
その$マーク有り無しの違いや使い分けなど理解が難しくて。。

$view = view('test');
$view-> index = 1;

上記のようなソースなのですが、「index = 1;」のところに$が無いのですが、
他のソースやファイルからindexを使う時には$を付けて変数が使われます。

PHPのマニュアルにも$の後に変数名というような記載があったのですが、
上記のソースでindexに$を付けるとエラーになってしまいます。

どういう場合に$を付ける必要があり、$を付けてはいけない場合があるのか、
ご教授ください。

環境はLaravel8をVSCodeで、PHPの実行はXAMPPで行っています。
OSはWin11です。

ソースはControllerクラスをオーバーライドし新規のメソッド内に記載したものです。

よろしくお願い致します。


引用返信 編集キー/
■101089 / inTopicNo.2)  Re[1]: PHPの変数でドルマークの有り無しの違い
□投稿者/ 魔界の仮面弁士 (3520回)-(2023/01/05(Thu) 16:32:19)
2023/01/05(Thu) 18:06:42 編集(投稿者)

No101087 (こうじ さん) に返信
> $view = view('test');
> $view-> index = 1;
> 上記のようなソースなのですが、「index = 1;」のところに$が無いのですが、

それはメンバー呼び出しでは?

index の直前に "->" (アロー演算子) が付いていますが、
アローの左辺がクラスのインスタンス(を保持している変数)、
アローの右辺がプロパティ(フィールド変数)やメソッド。

class WorkingTemplate implements Template
{
 private $vars = [];
 public function setVariable($name, $var)
 {
  $this->vars[$name] = $var;
 }
}

参考資料を追記:
https://webukatu.com/wordpress/blog/39841/


PHP では、クラス変数(VB でいう共有変数Shared、C# でいう静的変数static)は、
 クラス名::$クラス変数名
でアクセスし、クラスのインスタンス変数(PHP ではプロパティと呼ばれる)は、
 $インスタンス変数->インスタンス変数名
にてアクセスします。
引用返信 編集キー/
■101132 / inTopicNo.3)  Re[2]: PHPの変数でドルマークの有り無しの違い
□投稿者/ こうじ (3回)-(2023/01/08(Sun) 11:30:31)
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -