1

I want to store courseworks marks of n courseworks into n variables, such as cw1 and cw2 etc. Using variable variables how can I come with cw1, cw2 etc.

How can I dynamically create variables?

6 Answers 6

20

Use an array instead:

An array in PHP is actually an ordered map. A map is a type that associates values to keys. This type is optimized for several different uses; it can be treated as an array, list (vector), hash table (an implementation of a map), dictionary, collection, stack, queue, and probably more. As array values can be other arrays, trees and multidimensional arrays are also possible...

Sign up to request clarification or add additional context in comments.

2 Comments

Yep, you should be using an array here.
Came here to say this, then realised that I already did a few years ago!
10

You should really use an array, as Gumbo wrote:

$cw = array();

for($i = 0; $i < $n; ++$i) {
    $cw[] = $something;
}

However, a solution to your problem:

for($i = 0; $i < $n; ++$i) {
    $tmp = 'cw' . $i;
    $$tmp = $something;
}

Comments

2

Not entirely sure I understand the question, but you can do something like this:

$VarName = 'cw1';

$$Varname = 'Mark Value';

If you have a large number of these, you may be better off using an array for them, with indexes based on the coursework.

ie:

$a = array();
$a['cw2'] = cw2value;
// etc.

Comments

2
<?php

//You can even add more Dollar Signs

$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";

$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a

$$$$$$a; //Returns Hello
$$$$$$$a; //Returns World

//... and so on ...//

?>

Comments

1
php > for ($i=0; $i<5; $i++)
         { ${"thing{$i}"} = $i; }
php > echo $thing1;
1
php > echo $thing2;
2
php > echo $thing3;
3

Note that we're using the dollar sign around curly braces around a string.

Comments

0

Variable variables work in this way

$var = "foo";
$$var = "bar";

echo $foo; // bar

But i do not recommend doing this, since what if the value of $var changes, then you can no longer print out the 3rd line in this code.

If you could elaborate more on what you want to do i think we could help you more.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.