return value? [message #170864] |
Sat, 04 December 2010 07:39 |
paulfredlein
Messages: 8 Registered: December 2010
Karma: 0
|
Junior Member |
|
|
Hi,
Basic newbie question:-
$value = "0";
return $value;
I assume that would return a string (or in this case one char with the
hex value of 30) - is that right?
$value = 0;
return $value;
What does this return? Is it a string, a short int (little endian or big
endian) or what?
Thanks,
Paul
|
|
|
Re: return value? [message #170867 is a reply to message #170864] |
Sat, 04 December 2010 10:13 |
Luuk
Messages: 329 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 04-12-10 08:39, Paul Fredlein wrote:
> Hi,
>
> Basic newbie question:-
>
> $value = "0";
> return $value;
>
> I assume that would return a string (or in this case one char with the
> hex value of 30) - is that right?
Yes, the answer is here:
http://www.php.net/manual/en/function.gettype.php
>
> $value = 0;
> return $value;
>
> What does this return? Is it a string, a short int (little endian or big
> endian) or what?
it should not be a string,
i should test this to see what happens,
before i know the answer
but so can you ;-)
>
> Thanks,
>
> Paul
--
Luuk
|
|
|
Re: return value? [message #170875 is a reply to message #170864] |
Sat, 04 December 2010 13:57 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 12/4/2010 2:39 AM, Paul Fredlein wrote:
> Hi,
>
> Basic newbie question:-
>
> $value = "0";
> return $value;
>
> I assume that would return a string (or in this case one char with the
> hex value of 30) - is that right?
>
It returns a string.
> $value = 0;
> return $value;
>
> What does this return? Is it a string, a short int (little endian or big
> endian) or what?
>
It returns an integer. little endian or big endian is hardware
dependent (and completely immaterial).
> Thanks,
>
> Paul
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: return value? [message #170878 is a reply to message #170864] |
Sat, 04 December 2010 17:31 |
Thomas 'PointedEars'
Messages: 701 Registered: October 2010
Karma: 0
|
Senior Member |
|
|
Paul Fredlein wrote:
> Basic newbie question:-
>
> $value = "0";
> return $value;
>
> I assume that would return a string (or in this case one char with the
> hex value of 30) - is that right?
>
> $value = 0;
> return $value;
>
> What does this return? Is it a string, a short int (little endian or big
> endian) or what?
Yes and yes. (Try the gettype() function, or var_dump()).
PointedEars
--
Danny Goodman's books are out of date and teach practices that are
positively harmful for cross-browser scripting.
-- Richard Cornford, cljs, <cife6q$253$1$8300dec7(at)news(dot)demon(dot)co(dot)uk> (2004)
|
|
|
Re: return value? [message #170887 is a reply to message #170878] |
Sun, 05 December 2010 14:00 |
paulfredlein
Messages: 8 Registered: December 2010
Karma: 0
|
Junior Member |
|
|
Hi,
I'm returning the variables to a C++ programme running on the client
machine, I'm just a bit confused with php.
If I return "1234" then I'm returning a string of 4 chars - 4 bytes, but
if it's a short int then it's only 2 bytes. Seems wasteful to return
more than I need to do.
Thanks,
Paul
Thomas 'PointedEars' Lahn <PointedEars(at)web(dot)de> wrote:
> Paul Fredlein wrote:
>
>> Basic newbie question:-
>>
>> $value = "0";
>> return $value;
>>
>> I assume that would return a string (or in this case one char with the
>> hex value of 30) - is that right?
>>
>> $value = 0;
>> return $value;
>>
>> What does this return? Is it a string, a short int (little endian or big
>> endian) or what?
>
> Yes and yes. (Try the gettype() function, or var_dump()).
>
>
> PointedEars
|
|
|
Re: return value? [message #170888 is a reply to message #170887] |
Sun, 05 December 2010 14:13 |
Luuk
Messages: 329 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 05-12-10 15:00, Paul Fredlein wrote:
> Hi,
>
> I'm returning the variables to a C++ programme running on the client
> machine, I'm just a bit confused with php.
>
> If I return "1234" then I'm returning a string of 4 chars - 4 bytes, but
> if it's a short int then it's only 2 bytes. Seems wasteful to return
> more than I need to do.
>
> Thanks,
>
> Paul
>
you also can convert this 1234 to hexadecimal,
than you would have 3 bytes ('4D2') to return,
Which seems to be the best of both world....
;-)
--
Luuk
|
|
|
Re: return value? [message #170889 is a reply to message #170887] |
Sun, 05 December 2010 14:48 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 12/5/2010 9:00 AM, Paul Fredlein wrote:
> Thomas 'PointedEars' Lahn<PointedEars(at)web(dot)de> wrote:
>
>> Paul Fredlein wrote:
>>
>>> Basic newbie question:-
>>>
>>> $value = "0";
>>> return $value;
>>>
>>> I assume that would return a string (or in this case one char with the
>>> hex value of 30) - is that right?
>>>
>>> $value = 0;
>>> return $value;
>>>
>>> What does this return? Is it a string, a short int (little endian or big
>>> endian) or what?
>>
>> Yes and yes. (Try the gettype() function, or var_dump()).
>>
>>
>> PointedEars
<Top posting fixed>
> Hi,
>
> I'm returning the variables to a C++ programme running on the client
> machine, I'm just a bit confused with php.
>
> If I return "1234" then I'm returning a string of 4 chars - 4 bytes,
> but if it's a short int then it's only 2 bytes. Seems wasteful to
> return more than I need to do.
>
> Thanks,
>
> Paul
>
>
<top posting fixed>
You're worried about 2 bytes on a machine which has hundreds of
megabytes (or even gigabytes)?
If you're that worried about performance, you shouldn't be using PHP in
the first place. You should be doing everything in C. Or
Quite frankly, I've never seen anyone so obsessed with premature
optimization as you are, Paul. The things you're considering
"important" are so small in the scheme of things that they will be
unnoticeable.
And please don't top post.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: return value? [message #170892 is a reply to message #170888] |
Sun, 05 December 2010 18:01 |
Allodoxaphobia
Messages: 21 Registered: September 2010
Karma: 0
|
Junior Member |
|
|
On Sun, 05 Dec 2010 15:13:42 +0100, Luuk wrote:
> On 05-12-10 15:00, Paul Fredlein wrote:
>>
>> I'm returning the variables to a C++ programme running on the client
>> machine, I'm just a bit confused with php.
>>
>> If I return "1234" then I'm returning a string of 4 chars - 4 bytes, but
>> if it's a short int then it's only 2 bytes. Seems wasteful to return
>> more than I need to do.
>>
>> Thanks,
>>
>> Paul
>>
>
> you also can convert this 1234 to hexadecimal,
> than you would have 3 bytes ('4D2') to return,
>
> Which seems to be the best of both world....
Or, convert to raw binary and return it in 1 1/2 bytes. :-)
|
|
|
Re: return value? [message #170893 is a reply to message #170887] |
Sun, 05 December 2010 18:11 |
Thomas 'PointedEars'
Messages: 701 Registered: October 2010
Karma: 0
|
Senior Member |
|
|
Please do _not_ top-post; reply below *trimmed* quotations instead.
Paul Fredlein wrote:
> Thomas 'PointedEars' Lahn <PointedEars(at)web(dot)de> wrote:
>> Paul Fredlein wrote:
>>> $value = "0";
>>> return $value;
>>>
>>> I assume that would return a string (or in this case one char with the
>>> hex value of 30) - is that right?
>>>
>>> $value = 0;
>>> return $value;
>>>
>>> What does this return? Is it a string, a short int (little endian or
>>> big endian) or what?
>>
>> Yes and yes. (Try the gettype() function, or var_dump()).
>
> I'm returning the variables to a C++ programme running on the client
> machine, I'm just a bit confused with php.
>
> If I return "1234" then I'm returning a string of 4 chars - 4 bytes, but
> if it's a short int then it's only 2 bytes. Seems wasteful to return
> more than I need to do.
It is not clear how you are using this PHP script. AFAIK PHP scripts cannot
`return' a value; functions and includes (parts of PHP scripts) can `return'
a value, but that needs to be used by a PHP script [lower-stacked code, with
includes an (include|require)(_once)? statement.] Meaning that
php -r 'return 1;'
alone causes no syntax error here, but also outputs nothing and its exit
status is still 0 (zero).
If you are using what PHP sends to the standard output or standard error
stream, then what is printed is regarded a string of characters by C++
regardless of its PHP type, and you need to do a conversion from that string
of characters to an appropriate integer type in your C++ program.
If you are instead concerned about the exit status of a PHP script as
defined e.g. by an exit(…) function call, it will be of the type that the
platform uses that the PHP executable was compiled for, which should to be
the same as for your standard C++ library, since you could only get that
exit status directly if PHP and your C++ program were running on the same
machine.
PointedEars
--
Danny Goodman's books are out of date and teach practices that are
positively harmful for cross-browser scripting.
-- Richard Cornford, cljs, <cife6q$253$1$8300dec7(at)news(dot)demon(dot)co(dot)uk> (2004)
|
|
|
Re: return value? [message #170897 is a reply to message #170889] |
Mon, 06 December 2010 07:58 |
paulfredlein
Messages: 8 Registered: December 2010
Karma: 0
|
Junior Member |
|
|
Hi,
I grew up in DOS where every byte counts.
It's not the capacity of the client, it's the data travelling through
the 'ether'.
I'll just return everything as strings and extract it as needed.
Thanks
Paul
Jerry Stuckle <jstucklex(at)attglobal(dot)net> wrote:
> On 12/5/2010 9:00 AM, Paul Fredlein wrote:
>> Thomas 'PointedEars' Lahn<PointedEars(at)web(dot)de> wrote:
>>
>>> Paul Fredlein wrote:
>>>
>>>> Basic newbie question:-
>>>>
>>>> $value = "0";
>>>> return $value;
>>>>
>>>> I assume that would return a string (or in this case one char with the
>>>> hex value of 30) - is that right?
>>>>
>>>> $value = 0;
>>>> return $value;
>>>>
>>>> What does this return? Is it a string, a short int (little endian or big
>>>> endian) or what?
>>>
>>> Yes and yes. (Try the gettype() function, or var_dump()).
>>>
>>>
>>> PointedEars
>
> <Top posting fixed>
>
>> Hi,
>>
>> I'm returning the variables to a C++ programme running on the client
>> machine, I'm just a bit confused with php.
>>
>> If I return "1234" then I'm returning a string of 4 chars - 4 bytes,
>> but if it's a short int then it's only 2 bytes. Seems wasteful to
>> return more than I need to do.
>>
>> Thanks,
>>
>> Paul
>>
>>
> <top posting fixed>
>
> You're worried about 2 bytes on a machine which has hundreds of
> megabytes (or even gigabytes)?
>
> If you're that worried about performance, you shouldn't be using PHP in
> the first place. You should be doing everything in C. Or
>
> Quite frankly, I've never seen anyone so obsessed with premature
> optimization as you are, Paul. The things you're considering
> "important" are so small in the scheme of things that they will be
> unnoticeable.
>
> And please don't top post.
|
|
|
Re: return value? [message #170899 is a reply to message #170892] |
Mon, 06 December 2010 07:58 |
paulfredlein
Messages: 8 Registered: December 2010
Karma: 0
|
Junior Member |
|
|
Hi,
Even better, I'll return it as 'one, two, three, four' then it's
properly human readable.
Thanks,
Paul
Allodoxaphobia <knock_yourself_out(at)example(dot)net> wrote:
> On Sun, 05 Dec 2010 15:13:42 +0100, Luuk wrote:
>> On 05-12-10 15:00, Paul Fredlein wrote:
>>>
>>> I'm returning the variables to a C++ programme running on the client
>>> machine, I'm just a bit confused with php.
>>>
>>> If I return "1234" then I'm returning a string of 4 chars - 4 bytes, but
>>> if it's a short int then it's only 2 bytes. Seems wasteful to return
>>> more than I need to do.
>>>
>>> Thanks,
>>>
>>> Paul
>>>
>>
>> you also can convert this 1234 to hexadecimal,
>> than you would have 3 bytes ('4D2') to return,
>>
>> Which seems to be the best of both world....
>
> Or, convert to raw binary and return it in 1 1/2 bytes. :-)
|
|
|