{"id":57,"date":"2018-09-08T16:42:47","date_gmt":"2018-09-08T16:42:47","guid":{"rendered":"https:\/\/math-brownies.de\/?p=57"},"modified":"2018-09-08T16:46:46","modified_gmt":"2018-09-08T16:46:46","slug":"php-klassen-erstellen-und-einbinden-variablenarten","status":"publish","type":"post","link":"https:\/\/math-brownies.de\/index.php\/2018\/09\/08\/php-klassen-erstellen-und-einbinden-variablenarten\/","title":{"rendered":"Php Klassen erstellen und einbinden, Variablenarten"},"content":{"rendered":"<p>Eine php-Klasse hat einige Variablen und Funktionen, die dann f\u00fcr die Instanz der Klasse (= das Objekt) zur Verf\u00fcgung stehen.<\/p>\n<p>Um richtig sauber zu programmieren, legt man f\u00fcr jede Klassendefinition eine eigene Datei an und nutzt diese Datei dann in der Haupt-Datei so:<\/p>\n<pre>include_once 'Person.php';\r\ninclude_once 'Lehrer.php'; \r\n<\/pre>\n<p>Es gibt Eltern- und Kindklassen, das macht man beim definieren so:<\/p>\n<p>Elternklassen werden einfach definiert:<\/p>\n<pre>&lt;?php\r\nclass Person {\r\n}\r\n?&gt;\r\n<\/pre>\n<p>Dabei kann, wenn die Klasse nur ein &#8222;Denkkonstrukt&#8220; ist, von dem nie selber ein eigenst\u00e4ndiges Objekt aufgerufen wird, die Klasse spezifiziert werden als <em>abstract class Person.<\/em><\/p>\n<p>Kindklassen erweitern dann die Elternklasse.<\/p>\n<pre> class Lehrer extends Person<\/pre>\n<p>Das macht Sinn, wenn es einige Funktionen\/Variablen gibt, die f\u00fcr alle gelten (Personen haben ein Geschlecht), aber andere, die nur f\u00fcr Untergruppen gelten (Nur Sch\u00fcler haben einen Vornamen.)<\/p>\n<p>Zu Beginn der Klasse legt man public, protected und private <a href=\"http:\/\/php.net\/manual\/de\/language.variables.scope.php\">Variablen<\/a> fest, die in dieser Klasse zur Verf\u00fcgung stehen. (Globale Variablen sind b\u00f6se.) Wenn nichts vor einer Variable steht, ist sie public.<\/p>\n<ul>\n<li>Public bedeutet: Mit $objektname -&gt; variablenname kann immer auf die Variable zugegriffen werden, egal wo im Code ich mich gerade befinde (Das mit dem -&gt; variablenname ohne $ hei\u00dft magic getter)<\/li>\n<li>Protected bedeutet: Nur vererbte Klassen k\u00f6nnen (z.B. mittels magic getter oder durch Nutzung in Funktionen) auf die Variable zugreifen, au\u00dferhalb der Klassendefinition geht es nicht &#8211; will man von dort den Wert der Variable wissen, muss man eine passende Funktion haben.<\/li>\n<li>Private bedeutet: Nur die Klasse, in der es defniert wurde, kann darauf zugreifen.<\/li>\n<\/ul>\n<p>Es gibt noch Konstanten (const) &#8211; das sind fest definierte Variablen, die nicht ge\u00e4ndert werden. Und es gibt noch statische Variablen, aber ich finde, es reicht jetzt an Variablen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine php-Klasse hat einige Variablen und Funktionen, die dann f\u00fcr die Instanz der Klasse (= das Objekt) zur Verf\u00fcgung stehen. Um richtig sauber zu programmieren, legt man f\u00fcr jede Klassendefinition eine eigene Datei an und nutzt diese Datei dann in der Haupt-Datei so: include_once &#8218;Person.php&#8216;; include_once &#8218;Lehrer.php&#8216;; Es gibt Eltern- und Kindklassen, das macht man [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[3,5],"tags":[],"class_list":["post-57","post","type-post","status-publish","format-standard","hentry","category-informatik","category-php"],"_links":{"self":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":5,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/57\/revisions"}],"predecessor-version":[{"id":62,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/57\/revisions\/62"}],"wp:attachment":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/media?parent=57"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/categories?post=57"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/tags?post=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}