Sınıf tanımları dışında değişkenleri ve yöntemleri Erişme

4 Cevap php

Ben bu satırlar boyunca bir php dosyası olduğunu varsayalım:

<?php
function abc() {  }

$foo = 'bar';

class SomeClass {  }
?>

I abc() ve $foo SomeClass içinde kullanmak için yapmanız gereken özel bir şey var mı? Ben fonksiyonu dışında tanımlanmış değişkenleri erişmek için bir fonksiyon global kullanarak çizgisinde düşünüyorum.

(PHP OOP yeniyim)

4 Cevap

Herhangi bir sınıfın dışında işlevleri bir yerden çağrılabilir geneldir. Değişkenler ile aynı .. sadece değişkenler için küresel kullanmayı unutmayın ...

ör

<?php
function abc() {  }

$foo = 'bar';

class SomeClass {  
 public function tada(){
     global $foo;

     abc();
     echo 'foo and '.$foo;
 }
}
?>

fonksiyonlar global düzeyde tanımlanır; bu nedenle, size sınıfının bir yöntemi onları kullanmak için bir şey yapmanız gerekmez.

Daha fazla bilgi almak için, function page in the manual görürsünüz, (alıntı) hangi devletler:

All functions and classes in PHP have the global scope - they can be called outside a function even if they were defined inside and vice versa.


For your $foo variable, on the other hand, you have to use the global keyword inside each method/function in which you want to access it.

Daha fazla bilgi almak için, size ilginç bilgiler getirmelidir ki, Variable scope ile ilgili sayfayı okumak için çekinmeyin ;-)


Edit after the comment :

Each method/function regardless of it being defined within a class or not?

Bir "yöntem" denir: bir "fonksiyonu" bir sınıf içinde tanımlanmış ise, o hala function kullanılırsa olsa bile, artık bir "fonksiyonu" denir değil

Yöntem statik olarak kullanılabilir:

MyClass::myMethod();

Veya Dinamik:

$obj = new MyClass();
$obj->myMethod();

Onlar static ya da değil olarak tanımlanan edilip bağlı.


As a sidenote : if you are new to OOP in PHP, you should definitly invest some time to read the Classes and Objects (PHP 5) section of the manual : it will explain much.

Önce aradım eğer fonksiyon ve değişkenlerin hem de baston sınıfların içinde çağrılabilir

<?php
    function abc() {
        $ba = 'Hello';
        return $ba;
    }

$bar = 'World';

class foo {

    public function __construct() {
        global $bar;
        $body = abc();
        $bod = $bar;

        echo $body.$bod;
    }
}

$foo = new foo();
$foo;

$ Foo dediğimiz yeni bir sınıf oluşturmak için deneyin ve benzeri bir değişken

class SomeClass {  
 public function tada(){
     $foo = new Class;
     $foo = $foo->getFoo;
 }
}