I seem to remember strong typing being brought up before, and I also seem to 
remember it being shot down.

The consensus seemed to be if you want a strongly-typed language, use Java. 
Or C. Or C++. Or something other than PHP that has strong data typing.

Have things changed since then?

J


Ilker Cetinkaya wrote:

> i'd like to discuss with you a growing problem regarding php applications.
> 
> i see the features taken into account for ze2 have been made regarding the
> needs of advanced php developers who design complete applications with php
> instead of just dumping out some dynamic content.
> 
> php is ease of use because you don't have to care about important language
> needs like types.
> that makes following code possible
> 
> $a = "hello u ";
> $b = 2;
> echo $a.$b;
> 
> imho that is a good feature for coding simple things fast "from brain to
> keys".
> however in a more complicated and larger context, as in frameworks and
> libraries for example,
> this leads the coder to produce more code to get the things bugfree.
> 
> consider a function inserting a row into a table with id and name:
> 
> function ins($id, $name) {
>     if (is_numeric($id) && is_string($name)) {
>         // do insert
>         return true;
>     }
>     return false;
> }
> 
> through loose typing a value of $id = "1 " (note whitespace) is possible
> and insert would fail.
> no problem, extending condition to is_numeric(trim($id)) does it.
> anyways, a value of $name=444 causes failing this condition too, although
> it should be dyncasted into a string.
> 
> instead consider this:
> 
> bool function ins(int $id, string name) {
>     //do insert
>     return true;
> }
> 
> and everything is right.
> 
> what i want to point out is the loose vs. strong type issue - certainly
> discussed prior this post.
> 
> i'd like to propose the introduction of an explicit command for ze2 to
> resolve this issue.
> as known of vb for example, explicit forces coder to explicitly declare
> variables.
> this would require to be "explicit" as a language directive or option.
> 
> example:
> 
> #!php --explicit (or something similar, perhaps a php.ini entry)
> 
> mixed $mixed = "hello";
> string $str = "string";
> int $num = 5;
> bool $ok = false;
> array $ar;
> float $rate;
> 
> bool function ins(int $id, string $name);
> 
> class test {
>     private bool $done; //private
>     var string $name; //public;
>     private object $o;
> 
>     string print() {
>         return $name;
>     }
> }
> 
> object $o = new test();
> echo $o->print();
> 
> 
> i don't have any clue about implications regarding parsing and handling
> such explicit behaviour,
> especially considering type juggling, but juggling could be disabled when
> explicit is turned on.
> 
> is there a chance to realize this ? and moreover, is this a desired,
> planned feature ?
> i'd welcome this....
> 
> just my 2c;
> 
> ilker


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to