Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #18742

Re: ArrayObject vs array

From "J.O. Aho" <user@example.net>
Newsgroups comp.lang.php
Subject Re: ArrayObject vs array
Date 2021-07-24 12:10 +0200
Message-ID <im277qF7fbjU1@mid.individual.net> (permalink)
References <sde1e5$p89$1@gioia.aioe.org> <sdeuru$3h5$1@jstuckle.eternal-september.org> <sdgbps$18kp$1@gioia.aioe.org>

Show all headers | View raw


On 24/07/2021 08.26, alex wrote:
> Il 23/07/21 19:39, Jerry Stuckle ha scritto:
>> On 7/23/2021 5:16 AM, alex wrote:
>>> class C implements ArrayAccess, Countable, IteratorAggregate, 
>>> Serializable {
>>>
>>>      private $container = ['a', 'b'];
>>>
>>>      public function offsetSet($offset, $value) {
>>>          if (is_null($offset)) {
>>>              $this->container[] = $value;
>>>          } else {
>>>              $this->container[$offset] = $value;
>>>          }
>>>      }
>>>
>>>      public function offsetExists($offset) {
>>>          return isset($this->container[$offset]);
>>>      }
>>>
>>>      public function offsetUnset($offset) {
>>>          unset($this->container[$offset]);
>>>      }
>>>
>>>      public function offsetGet($offset) {
>>>          return isset($this->container[$offset]) ? 
>>> $this->container[$offset] : null;
>>>      }
>>>
>>>      public function count() {
>>>          return count($this->container);
>>>      }
>>>
>>>      public function getIterator() {
>>>          return new ArrayIterator($this->container);
>>>      }
>>>
>>>      public function serialize() {
>>>          return serialize($this->container);
>>>      }
>>>
>>>      public function unserialize($data) {
>>>          $this->container = unserialize($data);
>>>      }
>>>
>>>      public function getData() {
>>>          return $this->container;
>>>      }
>>>
>>> }
>>>
>>> print_r(
>>>          (array) new ArrayObject(['a', 'b'])
>>> );
>>> print_r(
>>>          (array) new C
>>> );
>>>
>>> Output:
>>>
>>> Array
>>> (
>>>      [0] => a
>>>      [1] => b
>>> )
>>> Array
>>> (
>>>      [Ccontainer] => Array
>>>          (
>>>              [0] => a
>>>              [1] => b
>>>          )
>>>
>>> )
>>>
>>> Because the result is not the same?
>>
>> An object is not the same as a basic type.  A basic type holds one or 
>> more values.  An object can also have methods to operate on those 
>> values.  The two are not compatible.
>>
> 
> Could you tell me what these methods are?

The object can be of any type, so the whole depends on the class definition.

for example:
class myclass {
	public $array = Array();
	public function getFirst() {
		if(sizeof($this->array) == 0)
		{
			return null;
		}
		return $this->array[1];
	}
}

this has the method getFirst.

-- 

  //Aho

Back to comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

ArrayObject vs array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-23 11:16 +0200
  Re: ArrayObject vs array Jerry Stuckle <jstucklex@attglobal.net> - 2021-07-23 13:39 -0400
    Re: ArrayObject vs array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-24 08:26 +0200
      Re: ArrayObject vs array "J.O. Aho" <user@example.net> - 2021-07-24 12:10 +0200
        Re: ArrayObject vs array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-24 13:05 +0200
          Re: ArrayObject vs array Jerry Stuckle <jstucklex@attglobal.net> - 2021-07-24 12:56 -0400
            Re: ArrayObject vs array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-25 11:13 +0200
              Re: ArrayObject vs array "J.O. Aho" <user@example.net> - 2021-07-25 11:48 +0200
                Re: ArrayObject vs array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-26 10:14 +0200
                Re: ArrayObject vs array "J.O. Aho" <user@example.net> - 2021-07-26 11:11 +0200
                Re: ArrayObject vs array Arno Welzel <usenet@arnowelzel.de> - 2021-07-26 12:16 +0200

csiph-web