回答編集履歴

3

chousei

2023/10/05 01:07

投稿

yambejp
yambejp

スコア117674

test CHANGED
@@ -26,7 +26,6 @@
26
26
 
27
27
  普通に評価したいならマジックメソッドではない普通のゲッタで処理することです
28
28
  ```PHP
29
- <?php
30
29
  class Car{
31
30
  private $t2;
32
31
  function __construct(){

2

追記

2023/10/05 01:06

投稿

yambejp
yambejp

スコア117674

test CHANGED
@@ -23,3 +23,23 @@
23
23
  var_dump([isset($car->t1),isset($car->t2),isset($car->t3),isset($car->t4)]);
24
24
  // true,false,false,false
25
25
  ```
26
+
27
+ 普通に評価したいならマジックメソッドではない普通のゲッタで処理することです
28
+ ```PHP
29
+ <?php
30
+ class Car{
31
+ private $t2;
32
+ function __construct(){
33
+ $this->t2=2;
34
+ }
35
+ public function __get($prop){
36
+ return $this->{$prop};
37
+ }
38
+ public function get($prop){
39
+ return $this->{$prop};
40
+ }
41
+ }
42
+ $car = new Car();
43
+ var_dump([$car->get("t2"),$car->t2]); //int(2),int2(2)
44
+ var_dump([empty($car->get("t2")),empty($car->t2)]); // false,true
45
+ ```

1

調整

2023/10/05 00:55

投稿

yambejp
yambejp

スコア117674

test CHANGED
@@ -1,6 +1,6 @@
1
- - [PHP: オーバーロード - Manual](https://www.php.net/manual/ja/language.oop5.overloading.php#object.get)
1
+ - [PHP: オーバーロード - Manual](https://www.php.net/manual/ja/language.oop5.overloading.php)
2
2
 
3
- __set/__getはアクセス不能または存在しないプロパティへデータを書き込む/読み込むので、protectedまたはprivate宣言されたプロパティは値は参照できてもissetではfalse、emptyではtrueを返します
3
+ __set()/__get()はアクセス不能または存在しないプロパティへデータを書き込む/読み込むので、protectedまたはprivate宣言されたプロパティは値は参照できてもissetではfalse、emptyではtrueを返します
4
4
 
5
5
  ```PHP
6
6
  class Car{