Wat gaat er fout in deze class?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

NiVin

niVin

02/09/2008 18:03:00
Quote Anchor link
Beste leden,

Ik heb een klass waarmee ik random waarde uit een tabel wil genereren om zodoende de letters uit een woord random kleuren te geven..

maar ik krijg de foutmelding:
Warning: array_rand() [function.array-rand]: First argument has to be an array in G:\xampp\htdocs\includes\klas.php on line 13

de class:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

class klas{

 var
$arr = array( '#7DE047', '#9448B7', '#5DFAF4', '#8A898E', '#31C1F6');


    function
funktie($var){

    $lenVar = strlen($var);

        for($i=0; $i<$lenVar; $i++){
        $ind = array_rand($arr, 1);
        echo "<span style=\" color: $arr[$ind]; \">$var[$i]</span>";
        }
    }
}

?>


en zo maak ik er in mn html een reference van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
include("includes/klas.php");
$ob = new klas;
echo $ob->funktie(test);
?>



Wat gaat er nu fout?

Groet,

Vincent
 
PHP hulp

PHP hulp

11/03/2025 15:23:35
 
Hipska BE

Hipska BE

02/09/2008 18:15:00
Quote Anchor link
test is geen string (doe bv 'test' ) en je moet $this->arr gebruiken. (basis php)
 
NiVin

niVin

02/09/2008 18:25:00
Quote Anchor link
grappig dat wanneer ik dus dit doe:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
    
funktie(test);

function
funktie($var){
     $arr = array( '#7DE047', '#9448B7', '#5DFAF4', '#8A898E', '#31C1F6');

    $lenVar = strlen($var);

        for($i=0; $i<$lenVar ; $i++){
        $ind= array_rand($arr, 1);
        echo "<span style=\" color: $color[$ind]; \">$var[$i]</span>";
        }

    }



?>


wel werkt.....

Ik weet dat een string met "" of '' werkt..maar in dit geval zonder dus blijkbaar ook. Dat is het probleem dus niet.
Gewijzigd op 01/01/1970 01:00:00 door niVin
 
Hipska BE

Hipska BE

02/09/2008 19:03:00
Quote Anchor link
zoals ik al zei, je moet $this->arr gebruiken ipv $arr

dan werkt het wel.

Is nog steeds basis PHP, ga eens een tutorial bekijken ofzo..
 
- SanThe -

- SanThe -

02/09/2008 19:11:00
Quote Anchor link
strlen($var);

strlen is voor strings en niet voor array()'s.
Daar heb je count voor.
 
Leroy Boerefijn

Leroy Boerefijn

02/09/2008 19:14:00
Quote Anchor link
@SanThe, $var is ook een string ;) hij vult alleen geen goede stringwaarde in :P
 
RvW Of toch niet

RvW Of toch niet

02/09/2008 19:19:00
Quote Anchor link
probeer dit eens :)



dit moet je ff aanpassen dan werkt hij :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

class klas{




    function
funktie($var){

    $lenVar = strlen($var);
    $arr = array( '#7DE047', '#9448B7', '#5DFAF4', '#8A898E', '#31C1F6');
        for($i=0; $i<$lenVar; $i++){
        $ind = array_rand($arr, 1);
        echo "<span style=\" color: $arr[$ind]; \">$var[$i]</span>";
        }
    }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door RvW Of toch niet
 
NiVin

niVin

02/09/2008 19:19:00
Quote Anchor link
heb um al:)

$arr = $this -> arr; in de functie definiëren was de oplossing!

Leroy schreef op 02.09.2008 19:14:
@SanThe, $var is ook een string ;) hij vult alleen geen goede stringwaarde in :P


maar als ik dus: funktie(test) doe, krijg ik wel netjes mn resultaat in de browser....blijkbaar zijn de quotes in dit geval toch niet noodzakelijk.
 
Hipska BE

Hipska BE

02/09/2008 19:24:00
Quote Anchor link
WebRtistik schreef op 02.09.2008 19:19:
heb um al:)

$arr = $this -> arr; in de functie definiëren was de oplossing!

Dit zei ik dus al 2 keer...
Quote:

maar als ik dus: funktie(test) doe, krijg ik wel netjes mn resultaat in de browser....blijkbaar zijn de quotes in dit geval toch niet noodzakelijk.


Je MOET echt wel quotes gebruiken voor strings (liefst de enkele), dit is voor php zo en voor alle andere scripting talen!!! Dat het hier nu toevallig wel werkt ontgaat mij dan ook, en is zeker geen manier om het aan te leren. (normaal zou het niet eens mogen werken zo)
 
- SanThe -

- SanThe -

02/09/2008 19:24:00
Quote Anchor link
Leroy schreef op 02.09.2008 19:14:
@SanThe, $var is ook een string ;) hij vult alleen geen goede stringwaarde in :P

Ik heb de namen verward. Oftewel niet goed gekeken. Oeps. ;-)
 

02/09/2008 19:27:00
Quote Anchor link
WebRtistik schreef op 02.09.2008 19:19:
heb um al:)

$arr = $this -> arr; in de functie definiëren was de oplossing!

Leroy schreef op 02.09.2008 19:14:
@SanThe, $var is ook een string ;) hij vult alleen geen goede stringwaarde in :P


maar als ik dus: funktie(test) doe, krijg ik wel netjes mn resultaat in de browser....blijkbaar zijn de quotes in dit geval toch niet noodzakelijk.

Jah, die oplossing heeft Hipska ook al gegeven. Wel lezen he............
Verder als je dat fap scriptje van je draait "die het wel doet" krijg je dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Notice:  Use of undefined constant test - assumed 'test' in C:\xampp\htdocs\test\eval.php(5) : eval()'d code on line 5



Notice:  Undefined variable: color in C:\xampp\htdocs\test\eval.php(5) : eval()'d code on line 14

t

Notice:  Undefined variable: color in C:\xampp\htdocs\test\eval.php(5) : eval()'d code on line 14

e

Notice:  Undefined variable: color in C:\xampp\htdocs\test\eval.php(5) : eval()'d code on line 14

s

Notice:  Undefined variable: color in C:\xampp\htdocs\test\eval.php(5) : eval()'d code on line 14

t

met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>

D'r boven. Ooit gehoort van debuggen?

Strings moeten altijd tussen quotes.
Spuit 11.
Gewijzigd op 01/01/1970 01:00:00 door
 
- -

- -

02/09/2008 19:28:00
Quote Anchor link
Wat zijn "funktie" en "klass"?

Ik ben namelijk nieuw met PVP (Hypertekst VoorProcessor)
Gewijzigd op 01/01/1970 01:00:00 door - -
 
NiVin

niVin

02/09/2008 19:41:00
Quote Anchor link
@Karl ....hahahaah.

Is meneertje nou aangebrand?

Als je niet normaal antwoord kan geven zou ik als ik jou was gewoon een ander forum zoeken..wat een kanzloze ben jij zeg.

Alle andere bedankt voor de (wel normale)reacties..!
 

02/09/2008 19:48:00
Quote Anchor link
WebRtistik schreef op 02.09.2008 19:41:
@Karl ....hahahaah.

Is meneertje nou aangebrand?

Nee.

WebRtistik schreef op 02.09.2008 19:41:
Als je niet normaal antwoord kan geven zou ik als ik jou was gewoon een ander forum zoeken..wat een kanzloze ben jij zeg.

Als jij nou eens normaal php leert, en leest wat andere al een paar keer hebben gezegt zie je d'r gelijk een stuk minder stommer uit.

Afbeelding
En?

@Chris: Ik krijg zoveel spam, dit kan er wel bij... Maarja, toch liever minder hé?
Gewijzigd op 01/01/1970 01:00:00 door
 
- -

- -

02/09/2008 19:53:00
Quote Anchor link
WebRtistik schreef op 02.09.2008 19:41:
@Karl ....hahahaah.

Is meneertje nou aangebrand?

Als je niet normaal antwoord kan geven zou ik als ik jou was gewoon een ander forum zoeken..wat een kanzloze ben jij zeg.

Alle andere bedankt voor de (wel normale)reacties..!


Nee jij dan met je vertaling naar het (niet kloppende) Nederlands? Hou oud ben je, 14?

Wow! Wat een stoere PM! Je bent denk ik nu wel helemaal onder de indruk of niet Karl? (Sarcasme...)
Gewijzigd op 01/01/1970 01:00:00 door - -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.