Nasıl bu nesnenin değeri ulaşmak istiyorsunuz?

2 Cevap php

Ben depolanan değerleri yankı ve erişmeye çalışıyorum ["_aVars: Özel"]

$ Obj-> _VARS ve $ obj-> _VARS: Özel çalışmıyor: (

Burada $ obj bir var_dump bulunuyor

object(test_object)#15 (30) {
  ["sDisplayLayout"]=>
  string(8) "template"
  ["bIsSample"]=>
  bool(false)
  ["iThemeId"]=>
  int(0)
  ["sReservedVarname:protected"]=>
  string(6) "test"
  ["sLeftDelim:protected"]=>
  string(1) "{"
  ["sRightDelim:protected"]=>
  string(1) "}"
  ["_aPlugins:protected"]=>
  array(0) {
  }
  ["_aSections:private"]=>
  array(0) {
  }
  ["_aVars:private"]=>
  array(56) {
    ["bUseFullSite"]=>
    bool(false)
    ["aFilters"]=>

2 Cevap

Var_dump çıktı :private kısmı aslında üye adının bir parçası değil, _aVars üyesi olduğunu bir göstergesi bulunuyor private.

_aVars özel olduğundan, bu değer sadece içeriden, nesnenin dışarıdan erişilemiyor bulunuyor.

Sen bir kamu alıcı işlevi veya değerini almak için benzer bir şey gerekiyordu.

Edit

Bu açıklığa kavuşturmak için, ben bir örnek yaptı:

class testClass {
    public $x = 10;
    private $y = 0;
}

$obj = new testClass();
echo "Object: ";
var_dump($obj);
echo "Public property:";
var_dump($obj->x);
echo "Private property:";
var_dump($obj->y);

Yukarıdaki kod aşağıdaki çıktıyı üretir:

Object:

object(testClass)[1]
  public 'x' => int 10
  private 'y' => int 0

Public property:

int 10

Private property:

Hiçbir teşebbüs var_dump() özel değişkenin sonra gelir nasıl fark. Kod erişimi olmadığından $obj->y dışından, o var_dump() Bu konuda herhangi bir bilgi üretmek için erişmek anlamına gelir.

$obj, ancak yerel bir değişken olduğundan, var_dump() orada çalışıyor. Bu var_dump() Bunun belirli bir özelliği bulunuyor o olacak korumalı ve özel nesne üye değişkenler hakkında çıkış bilgileri, nesne dökümü görmek yüzden bu yüzden. Bu ancak onlara erişimi anlamına gelmez.

Bir private yöntemi :) çünkü bunu erişemez. Ben sürece public olarak değiştirin yok gibi, tüm erişmek için bir yol var sanmıyorum.