ArrayAccess: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '=== Gränssnittet ArrayAccess === (PHP 5, PHP 7, PHP 8) ==== Introduktion ==== Gränssnitt för att tillhandahålla åtkomst till objekt som om de vore arrayer. ==== Gränssnittssammanfattning ==== <pre> interface ArrayAccess { →‎Metoder: public offsetExists(mixed $offset): bool public offsetGet(mixed $offset): mixed public offsetSet(mixed $offset, mixed $value): void public offsetUnset(mixed $offset): void } </pre> ==== Exempel ==== ===== Exempel #1 Grundlägga...')
 
 
Rad 97: Rad 97:


= Sidslut =
= Sidslut =
Orginalhemsidan på Engelska : https://www.php.net/manual/en/class.traversable.php
Orginalhemsidan på Engelska : https://www.php.net/manual/en/class.arrayaccess.php
<BR>[[PHP]]<BR>[[Språkreferens]]
<BR>[[PHP]]<BR>[[Språkreferens]]
<BR>[[Fördefinierade Gränssnitt och Klasser]]<BR>
<BR>[[Fördefinierade Gränssnitt och Klasser]]<BR>

Nuvarande version från 29 augusti 2024 kl. 17.01

Gränssnittet ArrayAccess

(PHP 5, PHP 7, PHP 8)

Introduktion

Gränssnitt för att tillhandahålla åtkomst till objekt som om de vore arrayer.

Gränssnittssammanfattning

interface ArrayAccess {
/* Metoder */
public offsetExists(mixed $offset): bool
public offsetGet(mixed $offset): mixed
public offsetSet(mixed $offset, mixed $value): void
public offsetUnset(mixed $offset): void
}

Exempel

Exempel #1 Grundläggande användning
<?php
class Obj implements ArrayAccess {
    public $container = [
        "one"   => 1,
        "two"   => 2,
        "three" => 3,
    ];

    public function offsetSet($offset, $value): void {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    public function offsetExists($offset): bool {
        return isset($this->container[$offset]);
    }

    public function offsetUnset($offset): void {
        unset($this->container[$offset]);
    }

    public function offsetGet($offset): mixed {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new Obj;

var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj["two"] = "A value";
var_dump($obj["two"]);
$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
print_r($obj);
?>

Ovanstående exempel kommer att ge något liknande:

bool(true)
int(2)
bool(false)
string(7) "A value"
obj Object
(
    [container:obj:private] => Array
        (
            [one] => 1
            [three] => 3
            [two] => A value
            [0] => Append 1
            [1] => Append 2
            [2] => Append 3
        )

)

Innehållsförteckning

Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/class.arrayaccess.php
PHP
Språkreferens
Fördefinierade Gränssnitt och Klasser


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.