Sono solo un principiante con OOP PHP. Quello che voglio succedere è di echo la variabile dalla class all'interno della function in un altro file. Si prega di dare un'occhiata a questo codice:
nel file class.library.php
:
class db_connect { // Other functions and variables here function settings() { $sql="SELECT * FROM lms_admin_settings"; $result = $this->conn->query($sql); while($data = $result->fetch_assoc()) { $name = $data["name"]; } } }
e nel file index.php
:
include("class.library.php"); $data = new db_connect; $data->settings();
quello che voglio succedere è semplicemente di echo la variabile chiamata $name
dalla function settings()
della class chiamata db_connect
al file index.php
.
Ho provato qualcosa di simile a questo:
include("class.library.php"); $data = new db_connect; $data->settings(); echo $name; // I tried this but didn't work, I put this just to make things more clearly.
Per favore dimmi il modo corretto di farlo.
PS: scusa per quali termini ho usato per spiegare il mio problema. Sono solo un principiante. Sei sempre il benvenuto a correggermi.
Devi impostare $name
come var public nella tua class. Come questo:
class db_connect { // We declare a public var public $name = ""; function settings() { $sql="SELECT * FROM lms_admin_settings"; $result = $this->conn->query($sql); while($data = $result->fetch_assoc()) { $this->name = $data["name"]; } } }
Quindi dovresti essere in grado di accedere alla tua var in questo modo in index.php
:
$data = new db_connect; $data->settings(); echo $data->name;
Puoi leggere questo per saperne di più su vars e visibilità delle funzioni Php doc
Il problema è che non stai restituendo nulla dal metodo settings()
. Restituisce l'integer set di risultati dal metodo settings()
e passa attraverso di esso, in questo modo:
class.library.php
class db_connect { // Other functions and variables here function settings() { $sql="SELECT * FROM lms_admin_settings"; $result = $this->conn->query($sql); return $result; } }
index.php
include("class.library.php"); $data = new db_connect; // catch the result set $result = $data->settings(); // loop through the result set while($data = $result->fetch_assoc()) { // display echo $data['name'] . "<br />"; }
<?php class db_connect { // Other functions and variables here public $name; function settings() { $sql="SELECT * FROM lms_admin_settings"; $result = $this->conn->query($sql); while($data = $result->fetch_assoc()) { $this->name = $data["name"]; } } } //index.php include("class.library.php"); $data = new db_connect; $data->settings(); echo($data->name); ?>