Php namespace ve sınıfları

1 Cevap php

Neden ben hata alırsınız? aynı ad sınıf ..

php 5.3.0

namespace ExampleSystem\Core;
class Test {
    public function __construct() {
    	print 'Test ok';
    }
}

// Fatal error: Class 'Test' not found in ...
$class_name = 'Test';
$obj = new $class_name;

// Ok
$class_name = 'ExampleSystem\Core\Test';
$obj = new $class_name;

// Ok
$obj = new Test;

1 Cevap

Ben PHP kılavuzunda bölüm ve ayet bulamıyorum, ama bariz bir açıklama yaptığınızda olduğunu:

 $obj = new $string

sonra değeri $string geçerli ad alanına eşleştirilir. Eğer $string başka bir yerde, farklı bir ad etkisi olmuş olabilir yerden geçirilen olabileceğini düşünün, bu, mantıklı.