6 Stimmen

Ist String ein Objekt in PHP?

Wenn man andere Sprachen wie Java oder C++ betrachtet, ist String ein Objekt.
Aber ist es in PHP dasselbe?

0 Stimmen

PHP unterstützt OOP, ist jedoch nicht grundlegend oop-basiert. Zeichenfolgen sind keine Objekte in PHP.

0 Stimmen

Du kannst tatsächlich ein String-Objekt in PHP mit den SPL-Typen haben: php.net/manual/de/class.splstring.php ... aber das ist sehr neu und sehr fehlerhaft.

0 Stimmen

Es ist von Natur aus kein Objekt, aber Sie könnten Ihre eigene String-Klasse erstellen, wenn Sie möchten. Vor ein paar Tagen habe ich darüber nachgedacht.

11voto

Baba Punkte 91769

Ein String ist standardmäßig kein Objekt in PHP und Casting ist nicht erforderlich, kann aber mit scalar_objects eingeführt werden.

class StringHandler {

    public function length() {
        return strlen($this);
    }
}

register_primitive_type_handler('string', 'StringHandler');

So können Sie einfach haben

$str->length();

5voto

powtac Punkte 39079

Ein String ist in PHP kein Objekt. Sie müssen in PHP die Typen von Variablen nicht umwandeln. Siehe http://www.php.net/manual/language.types.string.php und http://php.net/manual/language.types.type-juggling.php

0 Stimmen

Ok, also eine Zeichenkette ist eine Zeichenkette nehme ich an.

0 Stimmen

$name = "John"; macht einen String. PHP ist in diesem Fall viel einfacher als C(++). Es versucht herauszufinden, welchen Typ Sie vorschlagen.

0 Stimmen

So muss ich es als string schreiben und nicht als String. Entschuldigung, ich mag die Konventionen :-)

3voto

ty812 Punkte 3282

String ist kein Objekt in PHP; es ist ein primitiver Typ. Die Information befindet sich auf Typen.

Ein Kleinbuchstaben-String ist für die wenigen Anwendungen, die du haben könntest, korrekt.

0 Stimmen

Was meinen Sie mit dem letzten Satz?

0 Stimmen

OK, der OP hat das Gebäude verlassen: "Zuletzt vor mehr als 2 Jahren gesehen"

2voto

Daryl Gill Punkte 5454

String und Objekt sind zwei unterschiedliche Dinge. Wenn du jedoch deine eigenen Überprüfungen durchführen möchtest:

if (is_object($var))
{
 echo "Var ist ein Objekt"; 
}
elseif (is_string($var))
{
 echo "Var ist ein String"; 
}
else
{
  echo "Var ist weder ein Objekt noch ein String"; 
}

0 Stimmen

Ich habe diesen Test bereits gemacht, war mir aber nicht sicher, ob sie nur die Objektart durch eine Zeichenfolgeart ersetzt haben, die selbst ein Objekt hätte sein können... Das ist der Zweck meiner Frage :-)

0 Stimmen

@user1682624 Wie die Mehrheit der Antworten festgestellt hat, ist ein String kein Objekt... dasselbe Konzept mit einem Objekt als String, die anderen bereitgestellten Antworten sind Ihre Lösung

0 Stimmen

Das ist nicht wirklich eine genaue Antwort.

1voto

Anyone Punkte 2784

Sie können hier praktisch alles finden, was mit Typen zu tun hat: http://php.net/manual/de/language.types.php

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X