Öne Çıkanlar

PHP ile Web Programcılığı
Price: 39.0 TL 39.0 TL
MySQL ve PostgreSQL ile Veritabanı Programlama
Price: 24.87 TL 24.87 TL
Dreamweaver 8
Price: 23.0 TL 23.0 TL
Her Yönüyle PHP 6
Price: 25.65 TL 25.65 TL

Anket

En beğendiğiniz PHP kitabı hangisi?

Tür dayatma



PHP 5 ile birlikte gelen yeni OOP mimarisiyle birlikte tür dayatma özelliği de geldi. Bu bağlamda birçok php developer tür dayatma konusundan birhaber olduğundan dolayı konu hakkında basit bir örnek vermek istedim. PHP kitaplarımda konu hakkında ayrıntılı bilgi bulunduğunu da belirterek konuya giriş yapalım.

X ve Y adlarında iki adet class tanımladık. X class'ını çağırdıktan sonra Y class'ının içerisinde yer alan setObject metoduna X class'ını gönderiyoruz. setObject metodunda parametre girmeden önce X yani class'ın adını belirtiyoruz. Böylece bu metoda X adından başka herhangi bir değer girişini engellemiş oluyoruz. Aynı şekilde setArray metodunda parametreden önce Array bağlacı kullanarak, metod içerisine Array değeri içeren bir değişken gönderileceğini şark koşuyoruz.

<?php
/**
 * X class
 *
 */
class X{
    
/**
     * name
     *
     * @var string
     */
    
private $name;
    
/**
     * array
     *
     * @var array
     */
    
private $array;
    
/**
     * setName
     *
     * @param string $name
     */
    
public function setName($name){
        
$this->name $name;
    }
    
/**
     * getName
     *
     * @return string
     */
    
public function getName(){
        return 
$this->name;
    }
    
/**
     * setArray
     *
     * @param array $array
     */
    
public function setArray(Array $array){
        
$this->array $array;
    }
    
/**
     * getArray
     *
     * @return array
     */
    
public function getArray(){
        return 
$this->array;
    }
}
/**
 * Y class
 *
 */
class Y{
    
/**
     * object değişken
     *
     * @var object
     */
    
private $object;
    
/**
     * setObject
     *
     * @param X $x
     */
    
public function setObject(X $x){
        
$this->object $x;
    }
    
/**
     * setName
     *
     * @param string $name
     */
    
public function setName($name){
        
$this->object->setName($name);
    }
    
/**
     * setArray
     *
     * @param array $array
     */
    
public function setArray(Array $array){
        
$this->object->setArray($array);
    }
    
/**
     * getObject
     *
     * @return X
     */
    
public function &getObject(){
        return 
$this->object;
    }
    
    
}

$X = new X();
$Y = new Y();
$Y->setObject($X);
$Y->setName('Taha');
$Y->setArray(array(2,3,9,222));

echo 
$Y->getObject()->getName();

print_r($Y->getObject()->getArray());

?>