On 11 November 2014 04:11, Robert Stoll <p...@tutteli.ch> wrote:
>> I always found it very ugly that it is possible to define a use outside of a 
>> namespace. Consider the following:
>>
>> namespace{ //default namespace
>> }
>>
>> use foo\Bar;
>>
>> namespace test{
>>   new Bar(); //error, test\Bar not found }
>>
>> After some thoughts it is quite clear that Bar is test\Bar and not foo\Bar 
>> inside of the namespace test. But consider
> the
>> following example which is not so obvious:
>>
>> use foo\Bar;
>> namespace test;
>> new Bar(); //error, test\Bar not found
>>
>> The use declaration looks like a normal use declaration at first glance.
>> I do not see why we should actually support this "feature" any longer and 
>> thus suggest to remove it in PHP 7.
> Although, it is
>> not a bug (the use declaration is simply ignored as far as I can tell) I 
>> suppose it confuses the user.
>> Nevertheless, even if we declare it as a "feature" I think it should at 
>> least not be a "feature" of the specification
> of PHP 7.

Sorry, I apparently missed this the first time. Would this mean that
this sort of script (where we're using use statements without a
namespace) would no longer work?

<?php
use GuzzleHttp\Client;

include __DIR__.'/vendor/autoload.php';

$client = new Client;
// $client is a GuzzleHttp\Client object
?>

Because that strikes me as an irritating and unnecessary BC break for
people who are writing throwaway scripts (with no need to live in
namespaces) that pull in namespaced libraries to me.

Adam

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

Reply via email to