Edit report at http://bugs.php.net/bug.php?id=53095&edit=1

 ID:                 53095
 Comment by:         uramihsayibok at gmail dot com
 Reported by:        justinmitchell at iinet dot net dot au
 Summary:            Optional type hinting on variables
 Status:             Open
 Type:               Feature/Change Request
 Package:            Java related
 Operating System:   Nix/Win
 PHP Version:        5.3.3
 Block user comment: N

 New Comment:

What you're suggesting is less "type hinting" and more "strict typing",
which goes 

against what PHP has been doing for years. Consider using Java instead.



See also the PHP wiki (specifically
http://wiki.php.net/rfc/typechecking) and 

previous feature 

requests/bug reports.


Previous Comments:
------------------------------------------------------------------------
[2010-10-18 11:26:25] justinmitchell at iinet dot net dot au

Description:
------------
I know there's been a lot of discussion about type hinting for years
now. It's prevalent in most OOP languages and as PHP makes the move
towards being an OOP scripting language, it would make sense to
introduce certain language features. Unless there is a technical
constraint (quite possible), would it be possible to introduce type
hinting on variables? 

 

I make the argument because it would be encourage data validation based
on the variable type rather than having to create functions to check if
the input matches the variable type. It would vastly improve current and
future frameworks, reduce code and improve error handling (assuming the
programmer implements).



Cast exceptions would need to be implemented as well, eg. String could
not be cast to int, int cannot be set a string value etc.



It can also in part replace the is_int, is_numeric, is_bool etc.
functions; functions which wouldn't be needed if there was variable type
hinting.

Test script:
---------------
<?php

$a = 0;

int $b = 0;



changeVar(&$var) {

    try {

        $var = 'abc123';

    } catch (Exception $ex) {

        echo 'could not change variable value or something';

    }

}

Expected result:
----------------
There will be a compile time error because variable type hinting isn't
supported. If it were to be implemented you would expect something along
the lines of:



changeVar($a);

changeVar($b);

// prints exception message



echo $a; // abc123

echo $b; // 0

Actual result:
--------------
Throws a compile time error, isn't supported by php


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53095&edit=1

Reply via email to