- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- ZUK Z2 - Kicsi a bors, de erős!
- Elektromos rásegítésű kerékpárok
- hdanesz: Elektromos autózás - Hyundai Ioniq 28 kWh - 2018
- Gurulunk, WAZE?!
- hdanesz: Elektromos autózás - első élmények
- eBay-es kütyük kis pénzért
- sziku69: Szólánc.
Új hozzászólás Aktív témák
-
Peter Kiss
őstag
válasz
H.O.D. #13136 üzenetére
Mindkettő rossz. Active record-nak hívják, akárhogy is csinálod, ahol az entitásod egyben felel azért, hogy mentve legyen minden adott típusú elemed, illetve a lekérdezésért is ez felel. Az ilyen jellegű keveredések károsak.
Ha a legegyszerűbb értelmes megoldást szeretnéd, akkor kell
valami, ami kezeli a "tárhelyet" (adatbázis backend mellett ez jelenti az adatbázis-kapcsolatot, illetve a query-k végrehajtását),
valami, amivel le tudsz kérdezni, menteni tudsz (DAO),
és az entitásod (Product) -
cucka
addikt
válasz
H.O.D. #13136 üzenetére
Tehát egy statikus osztálynak nincs is __construct metódusa,
PHP-ban nincs olyan fogalom, hogy statikus osztály. Felejtsd el.
Minden osztálynak van __construct metódusa. Ha te nem írod meg, akkor a PHP csinál neki egy alapértelmezett üres metódust.Szerintem fogj egy PHP-s könyvet, ami az OOP-ra van kihegyezve, és olvasd el. Továbbra is ott tartunk, hogy írsz valami kódot, amiben vannak OOP-s kulcsszavak, de az egésznek semmi értelme OOP szemszögből.
Egy Product osztály az OOP irányból nézve nem a termékekkel kapcsolatos segédfüggvények gyűjteménye, hanem egy termék reprezentációja a kódodban. Egy Product objektumban tehát nincs getProduct() metódus, mert maga a Product objektum a termék. Az adattagok a termék adatai, a metódusok pedig a terméken végezhető műveletek. Ezt figyelembe véve a kérdésed blődség, teljesen irreleváns, hogy statikus vagy nem statikus az a metódus, aminek semmilyen keresnivalója nincs a termék osztályban.
Persze, biztos össze tudsz kalapálni szaktudás nélkül is valamit, ami úgy-ahogy működik és vannak benne OOP kulcsszavak, csak nem ez a jó irány.
-
fordfairlane
veterán
válasz
H.O.D. #13126 üzenetére
Értelmes fellelhető forrás hiányában arra gondoltam, ez megtörténik az osztály bármely metódusának/elemének használatakor.
Tudomásom szerint erre nincs beépített automatizmus, osztály használatakor nem történik ilyesfajta inicializálás. A konstruktor példányosításkor hívódik meg.
A PHP osztálybetöltő mechanizmusa viszont testreszabható, így megoldható egyfajta osztálybetöltő és inicializáló kódrész. Mondjuk ha __init-nek hívod, akkor valami ilyesmivel pl:
<?php
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
if(is_callable($class, '__init')) {
$class->__init();
}
});
?> -
cucka
addikt
válasz
H.O.D. #13126 üzenetére
Statikus adattagot így tudsz inicializálni:
class Test{
static $data = 5;
}Nyoévám me, példányosítással, de akkor hogyan?
A statikus adattagok/metódusok az osztályhoz köthetők, nem az objektumpéldányhoz. Tehát pont az a lényeg, hogy függetlenek attól, hogy létrejön-e akár 1 példány abból az osztályból vagy sem.arra gondoltam, ez megtörténik az osztály bármely metódusának/elemének használatakor.
A statikus adattag akkor jön létre, amikor az osztály kódját értelmezi a php.
Ezt próbáld meg megérteni: a statikus adattag az lényegében egy globális változó. A trükk, hogy becsomagolod egy osztályba, az osztály nevén keresztül tudod elérni, így nem szennyezed a globális névteret. Egy osztály, ami csak statikus dolgokat tartalmaz, az lényegében nem egy osztály, hanem egy névtér. Akkor használunk ilyet, ha
- a nyelv nem támogatja a névtereket (pl. régebbi php verziók)
- a nyelvben nincsenek globális változók (pl. java)__autoload()-dal töltöm be, ha abba teszek egy xy::__construct()-ot, az lehet megoldás?
Nem. Az autoload arra van, hogy megtaláld a hivatkozott osztály file-ját és include-old. A konstruktor meg az a speciális metódus, amely egy osztály példányosításánál fut le. A kettőnek semmi köze egymáshoz. -
fordfairlane
veterán
válasz
H.O.D. #13119 üzenetére
Használhatsz Singletont.
<?php
class Osztaly {
private $prop1;
private $prop2;
private function __construct() {}
public static function getInstance() {
static $instance = null;
if($instance == null) {
$instance = new Osztaly();
}
$instance->prop1 = "ezt belerakom";
$instance->prop2 = "ezt meg ide";
return $instance;
}
public function getProp1() {
return $this->prop1;
}
public function getProp2() {
return $this->prop2;
}
}
$o = Osztaly::getInstance();
$o2 = Osztaly::getInstance();
var_dump($o === $o2);
?> -
cucka
addikt
válasz
H.O.D. #13119 üzenetére
Igazából a probléma, hogy a kódod tele van OOP kulcsszavakkal, csak jól láthatóan nem igazán tudod, mire használd ezeket.
Egyrészt, amit írsz, az nem OOP kód, lényegében egy namespace-t készítesz egy osztályba csomagolva. Ennyi erővel akár használhatnál namespace-t is.
A másik, hogy a kódodból és a hosszászólásodból jól látszik, hogy az alapvető OOP-s fogalmak hiányoznak, tehát első körben javaslom, ezeket pótold be. (Például a konstruktort nem manuálisan hívod, hanem példányosításnál fut automatikusan. Statikus adattagok konstruktorban történő inicializálása azt jelenti, hogy nem érted, mit jelent a static kulcsszó.). Nehéz úgy segíteni, ha nem egy bugot kell kijavítani, hanem ilyen alapvető gondok vannak a kóddal. -
-
Chris_T
tag
Na, ez is egy jó ötlet
Most hogy ez a sor nem működik:
mysql_query("INSERT INTO szemely(nev, nemzet, szul_ido) VALUES("$_POST["nev_$i"]", "$_POST["nemzet_$i"]", "$_POST["szul_ido_$i"]") ");Nekem is ilyesmi jutott eszembe
$nev_index = "nev_" . $i;
$nemzet_index = "nemzet_" . $i;
$szul_ido_index = "szul_ido_" . $i;
mysql_query("INSERT INTO szemely(nev, nemzet, szul_ido) VALUES('$_POST[$nev_index]', '$_POST[$nemzet_index]', '$_POST[$szul_ido_index]') ");Most azt furcsállom hoyg az elsö esettel szemben itt a $_POST[$szul_ido_index] működik
-
biker
nagyúr
viccesnek vicces, de nem működött.
végül az mb_uppercase és mb_lowercase lett a haverom
így jó, csak kétszer kell kerestetni, egyszer lower, egyszer upper, hogy tutti jó legyenszerk: nem, normál tárolás van. egyszerűen az utf-8 még mindig hadilábon áll, láthatóan, és space a keresett szó előtt és után van, mármint a táblában, de a post-ban nincsen, de ott a %...% metódus rá.
Mondjuk ezzel a k.. táblával eddig csak a szívás volt.
küldenek táblát importálni. a tábla a létező összes karaktert normál úton is tartalmazza, amit a csv tagolásra és delimiterre lehet használni, tehát a szöveg bővelkedik ' " , tab, space, - _ @ # $ jelekkel is. már néha sírok... -
föccer
nagyúr
4-5 napot foglalkoztam eddig vele
on:
POST[]- változóként hogyan tudonátadni konstans értékeket?
definiálok így egy form-ot, ami hivatkozik egy másik php-ra.
<form method=''POST'' action=''vegrehajt.php''>
a formon van x elem, aminek mindnek van neve, és eza alapján a végrehajt.php-ban el tudom öket érni. De azt hogyan csinálom, hogy egy egyszerű konstanst adok át? Értelemszerűen nem akarok hozzá textarea-t vagy text elemet létrehozni, mert minek...
Ja, és az sem megoldás, hogy a hivathozásban átadom ( végrehajt.php?konst1=xxx&konst2=yyyy), mert ''bizalmas'' cuccokat kellene átadnom a végrehajtó php-nek (azonosító, jelszó).
remélem érthető
Köccenet
üdv.: föccer -
föccer
nagyúr
másik kérdés: Miért nem akar menni...
<?php
$_user = $_POST[a_id];
$_jelszo = $_POST[a_jelszo];
$_correkt = ''false'';
$_adminneve = '''';
switch ($_user){
case ''****'': if ($_jelszo == ''*****) {
$_correkt = ''true'';
$_adminneve = ''******'';
break;}
case ''*****'': if ($_jelso == ''******''){
$_correkt = ''true'';
$_adminneve = ''*****'';
break;}
if ($_correkt == true ){
echo ''Üdvözöllek ''.$_adminneve;
}
else
{
echo ''Ismeretlen felhasználó! Semmi keresnivalód itt!'';
}
?>
A hibát az utolsó sorra jelzni ( ;> )
A neveket, és a jelszavakat kicsillagoztam.
Kösszke.
[Szerkesztve] -
Csontikka
aktív tag
Hát az aáll a legközelebb az igazsághoz hogy nem, már nem megy semmi.
Évekkel ezelőtt talán ment de már semmire nem emléxem se html-ből se phpból javat meg sosem tudtam csak annyira amennyira Java1-ből meg kellett tanulni (konzolos parancsok)...
Meg mendomom őszintén azt hittem ,hogy ez tényleg párperces ujjgyakorlat annak aki ért hozzá és sajnos idő hiányában nem nagyon szeretnék elszenvedni vele kb 1 napot mire kiollózom google-el a példa php-kből, javaszkriptekből a nekem megfelelő sorokat. (már 2*2 órát szenvedtem vele, de semeddig sem jutottam)
Szóval kérem szépen ha valaki ''megszán'' egy kicsit, kérem, hogy komplettsegítségben részesítsen! Igazából az sem számít, hogy php-ből vagy JS-ből van az az oldal megnyitva, vagy átirányítva a lényeg hogy menjen, az sem zavar, hogy megfogja a böngésző mint popup, majd letiltom erre az oldalra a lényeg hogy menjen!
Mégegyszer nagyon köszönöm az eddigieket is, a továbbiakat pedig előre is!
Üdv
Csontikka
Új hozzászólás Aktív témák
Hirdetés
- Gaming notebook topik
- exHWSW - Értünk mindenhez IS
- Nintendo Switch 2
- Renault, Dacia topik
- Milyen billentyűzetet vegyek?
- Kertészet, mezőgazdaság topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Tőzsde és gazdaság
- 2025 - Íme a 25. héten megjelenő játékok listája
- További aktív témák...
- Üzletből, garanciával, Macbook Pro Retina 14" 2021, M1 32GB RAM/1TB SSD Space gray
- HP EliteBook x360 830 G8 Core i5 1145G7 2.6GHz/16GB RAM/512GB
- UF Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1360P 16/1TB Iris Xe 2,8K OLED 90Hz
- Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1260P 16/512 Iris Xe 2,8K OLED 90Hz
- Új DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -40% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- Bomba ár! HP Elitebook 850 G6 - i5-8GEN I 8GB I 256GB SSD I 15,6" FULLHD I Cam I W11 I Gari!
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- Eladó szép állapotban levő Huawei P30 Pro kék 6/128GB 12 hónap jótállással!
- Országosan a legjobb BANKMENTES részletfizetési konstrukció! Lenovo ThinkPad L16 Gen 1 Prémium
- BESZÁMÍTÁS! GIGABYTE AORUS ELITE Z790 i7 14700K 64GB DDR5 1TB SSD 7900XTX 24GB be quiet! SB802 1000W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest