Re: [PHP] Problems with Arrays and print and echo
John Wells wrote: echo "$this->name[5]\n"; echo "$this->ID[5]\n"; $a1 = $this->name; $a2 = $this->ID; echo "\n$a1[5] $a2[5]\n"; use curly brackets to help PHP understand what you're after: echo "{$this->name[5]}\n"; When you're in a string like this, PHP has a hard time knowing when you're wanting to access a variable, and when you're simply trying to output text. Using curly brackets clears it up. HTH, John W Thanks. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Problems with Arrays and print and echo
> > echo "$this->name[5]\n"; > > echo "$this->ID[5]\n"; > > $a1 = $this->name; > > $a2 = $this->ID; > > echo "\n$a1[5] $a2[5]\n"; use curly brackets to help PHP understand what you're after: echo "{$this->name[5]}\n"; When you're in a string like this, PHP has a hard time knowing when you're wanting to access a variable, and when you're simply trying to output text. Using curly brackets clears it up. HTH, John W -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Problems with Arrays and print and echo
Michael Felt wrote: echo "\n". $this->name[5] . " " . $this->ID[5]. "\n"; This give the same output as: $a1 = $this->name; $a2 = $this->ID; echo "\n$a1[5] $a2[5]\n"; Looks like I may need to use the '.' constructor more often Who can explain this (please)? Michael Felt wrote: OK . a rewrite, bit shorter... 1. A class construct with two arrays: var $name; var $ID; function init($id) { $this->name = array(); $this->ID = array(); . # firther in code assignment done from a mysql database: while ($max--) read $this->name[$max] = $row[0]; $this->ID[$max] = $row[1]; $Name[$max] = $row[0]; $ID[$max] = $row[1]; } and now some debug code print_r($this->name); print_r($this->ID); echo "\n$Name[5]\n"; echo "$this->name[5]\n"; echo "$this->ID[5]\n"; $a1 = $this->name; $a2 = $this->ID; echo "\n$a1[5] $a2[5]\n"; Output: Array ( [6] => 8-TFDX [5] => B-E3KQ [4] => BR-6XP [3] => G5ED-Y [2] => O-LR1H [1] => UL-4ZW [0] => Y5J-EU ) Array ( [6] => 3312 [5] => 3307 [4] => 3311 [3] => 3310 [2] => 3309 [1] => 3313 [0] => 3308 ) B-E3KQ Array[5] Array[5] B-E3KQ 3307 chris smith wrote: var $name = array(); (or '' or ) ? -- Postgresql & php tutorials http://www.designmagick.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Problems with Arrays and print and echo
Michael Felt wrote: OK . a rewrite, bit shorter... 1. A class construct with two arrays: var $name; var $ID; function init($id) { $this->name = array(); $this->ID = array(); # firther in code assignment done from a mysql database: while ($max--) read $this->name[$max] = $row[0]; $this->ID[$max] = $row[1]; $Name[$max] = $row[0]; $ID[$max] = $row[1]; } and now some debug code print_r($this->name); print_r($this->ID); echo "\n$Name[5]\n"; echo "$this->name[5]\n"; echo "$this->ID[5]\n"; $a1 = $this->name; $a2 = $this->ID; echo "\n$a1[5] $a2[5]\n"; Output: Array ( [6] => 8-TFDX [5] => B-E3KQ [4] => BR-6XP [3] => G5ED-Y [2] => O-LR1H [1] => UL-4ZW [0] => Y5J-EU ) Array ( [6] => 3312 [5] => 3307 [4] => 3311 [3] => 3310 [2] => 3309 [1] => 3313 [0] => 3308 ) B-E3KQ Array[5] Array[5] B-E3KQ 3307 chris smith wrote: var $name = array(); (or '' or ) ? -- Postgresql & php tutorials http://www.designmagick.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Problems with Arrays and print and echo
chris smith wrote: On 4/7/06, Michael Felt <[EMAIL PROTECTED]> wrote: Slowly I am getting the output I want. Trying to use "dynamic" arrays, does creat the array I want, but getting the info is sometimes surprising. I notice a difference between arrays used locally in a function, and arrays used as a 'var' in a class function (all in PHP 4 atm). Code snippet: echo "ROWS returned are: $max\n"; $this->count = $max; while ($max--) { $row = mysql_fetch_row($result); $this->name[$max] = sprintf("%s", $row[0]); $Name[$max] = sprintf("%s", $row[0]); echo "init \$this->Xame[$max] = $row[0]"; echo " $Name[$max] $this->name[$max]\n"; $regionID[$max] = $row[1]; $constellationID[$max] = $row[2]; $this->ID[$max] = $row[3]; printf("%d:%d/%d/%s\n",$max,$regionID[$max],$constellationID[$max], $this->name[$max]); } Line wrap is messing things up a bit. Was trying sprintf to see if the was a buffer problem coming from mysql. Problem seems to be the same, regardless. Also, the names changes ($this->name[] versus $Name[]) are deliberate, for just in case Output (debuging): ROWS returned are: 7 init $this->Xame[6] = 8-TFDX 8-TFDX Array[6] Is the problem that you're getting array[6] instead of the value? Explain what you see and what you expect to see. What is var $name originally set to, ie: $row = mysql_fetch_row($result); $this->name[$max] = sprintf("%s", $row[0]); $Name[$max] = sprintf("%s", $row[0]); Is the actual assignment of variables. What surprises me is that the 'local' variable echos what I expect, but the 'class' variable does not. function init($id) { $this->ID[0] = ERROR; $this->name[0] = ""; Hope this answers your question. And yes, I am not happy the the 'Array[X]' output, I am expecting the value, not what it is. I have already tried establishing an array type early in the function... var $name = array(); (or '' or ) ? -- Postgresql & php tutorials http://www.designmagick.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Problems with Arrays and print and echo
On 4/7/06, Michael Felt <[EMAIL PROTECTED]> wrote: > Slowly I am getting the output I want. > > Trying to use "dynamic" arrays, does creat the array I want, but getting > the info is sometimes surprising. > > I notice a difference between arrays used locally in a function, and > arrays used as a 'var' in a class function (all in PHP 4 atm). > > Code snippet: > echo "ROWS returned are: $max\n"; > $this->count = $max; > > while ($max--) { > $row = mysql_fetch_row($result); > $this->name[$max] = sprintf("%s", $row[0]); > $Name[$max] = sprintf("%s", $row[0]); > echo "init \$this->Xame[$max] = $row[0]"; > echo " $Name[$max] $this->name[$max]\n"; > $regionID[$max] = $row[1]; > $constellationID[$max] = $row[2]; > $this->ID[$max] = $row[3]; > printf("%d:%d/%d/%s\n",$max,$regionID[$max],$constellationID[$max], > $this->name[$max]); > } > > Line wrap is messing things up a bit. > Was trying sprintf to see if the was a buffer problem coming from mysql. > Problem seems to be the same, regardless. > Also, the names changes ($this->name[] versus $Name[]) are deliberate, > for just in case > > > Output (debuging): > ROWS returned are: 7 > init $this->Xame[6] = 8-TFDX 8-TFDX Array[6] Is the problem that you're getting array[6] instead of the value? Explain what you see and what you expect to see. What is var $name originally set to, ie: var $name = array(); (or '' or ) ? -- Postgresql & php tutorials http://www.designmagick.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Problems with Arrays and print and echo
Slowly I am getting the output I want. Trying to use "dynamic" arrays, does creat the array I want, but getting the info is sometimes surprising. I notice a difference between arrays used locally in a function, and arrays used as a 'var' in a class function (all in PHP 4 atm). Code snippet: echo "ROWS returned are: $max\n"; $this->count = $max; while ($max--) { $row = mysql_fetch_row($result); $this->name[$max] = sprintf("%s", $row[0]); $Name[$max] = sprintf("%s", $row[0]); echo "init \$this->Xame[$max] = $row[0]"; echo " $Name[$max] $this->name[$max]\n"; $regionID[$max] = $row[1]; $constellationID[$max] = $row[2]; $this->ID[$max] = $row[3]; printf("%d:%d/%d/%s\n",$max,$regionID[$max],$constellationID[$max], $this->name[$max]); } Line wrap is messing things up a bit. Was trying sprintf to see if the was a buffer problem coming from mysql. Problem seems to be the same, regardless. Also, the names changes ($this->name[] versus $Name[]) are deliberate, for just in case Output (debuging): ROWS returned are: 7 init $this->Xame[6] = 8-TFDX 8-TFDX Array[6] 6:1003/2044/8-TFDX init $this->Xame[5] = B-E3KQ B-E3KQ Array[5] 5:1003/2044/B-E3KQ init $this->Xame[4] = BR-6XP BR-6XP Array[4] 4:1003/2044/BR-6XP init $this->Xame[3] = G5ED-Y G5ED-Y Array[3] 3:1003/2044/G5ED-Y init $this->Xame[2] = O-LR1H O-LR1H Array[2] 2:1003/2044/O-LR1H init $this->Xame[1] = UL-4ZW UL-4ZW Array[1] 1:1003/2044/UL-4ZW init $this->Xame[0] = Y5J-EU Y5J-EU Array[0] 0:1003/2044/Y5J-EU ++ Thanks for your ideas, help, etc.. Maybe it is somethign as simple as "can't do that with echo", but when the arrays are all single element ( foo_array[0] is only element ) all statements work as expected. regards, Michael -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php