Det är ett fascinerande hopp! Att gå från MS Access VBA (där allt snurrar kring formulär, tabeller och DAO/ADO-objekt) till PHP (där allt är löst kopplat och körs “one-shot” per sidladdning) kräver att man tänker om lite, även om logiken är densamma.
I VBA är objekt ofta “tunga” (som ett Form eller Recordset). I PHP är objekt mer som “containrar” för data och logik som du bygger själv.
Här är jämförelsen för en “0 och 1”-programmerare:
| Funktion | MS Access VBA (Klassmodul) | PHP (Klasser) | Förklaring |
| Definiera Klass | Skapa en .cls Klassmodul | class MyClass { … } | Grundritningen för objektet. |
| Instansiera | Set x = New MyClass | $x = new MyClass(); | Skapar en unik “kopia” i minnet. |
| Egenskap (Property) | Public MyVar As String | public $myVar; | Variabler som tillhör objektet. |
| Metod (Sub/Function) | Public Sub MyProc() | public function myProc() { } | Funktioner som objektet kan utföra. |
| Konstruktor | Class_Initialize() | function __construct() { } | Körs automatiskt när objektet skapas. |
| Destruktor | Class_Terminate() | function __destruct() { } | Körs när objektet tas bort ur minnet. |
| Åtkomst (Access) | x.MyProperty | $x->myProperty; | I PHP används -> istället för punkt. |
| Referera till sig själv | Me.MyProperty | $this->myProperty; | Hur objektet pratar med sina egna variabler. |
Exempel: Skapa en “Bok”-klass
Eftersom du jobbar med din bokdatabas (books.kiropro.eu), låt oss titta på hur det ser ut i båda språken.
I MS Access VBA:
VBA
‘ I en klassmodul kallad “clsBook”
Public Title As String
Public Sub ShowTitle()
MsgBox Me.Title
End Sub
‘ Användning:
Dim myBook As New clsBook
myBook.Title = “Life After Life”
myBook.ShowTitle
I PHP (WordPress-stil):
PHP
class Book {
public $title;
public function __construct($name) {
$this->title = $name;
}
public function showTitle() {
echo $this->title;
}
}
// Användning:
$myBook = new Book(“Life After Life”);
$myBook->showTitle();
Varför detta spelar roll för din WordPress-sajt:
När du tittar på koden vi skrev för din 404 Monitor, så använde vi faktiskt ett objekt:
$wp_admin_bar->add_node($args);
- $wp_admin_bar är objektet (tänk dig ett objekt i Access som heter objAdminMenu).
- -> är PHP-motsvarigheten till punkt (.) i VBA.
- add_node är metoden (precis som .AddItem i en Listbox i Access).
Den stora skillnaden är att PHP “glömmer” allt så fort sidan har ritats klart i din webbläsare i Jönköping. I Access lever objekten kvar så länge formuläret är öppet. I PHP föds och dör objektet på några millisekunder!
Vill du att jag visar hur man skapar en enkel “Klass” i PHP som du kan använda för att hantera dina bok-data mer effektivt än med vanliga variabler?
