В PHP5 было добавлено множество объектно-ориентированных идей. Объектно-ориентированные идеи PHP5 ближе к объектно-ориентированным идеям Java. Здесь мы опишем функции статических и константных ключевых слов в PHP5, надеясь быть полезными для друзей, изучающих PHP5.
(1) статический
Ключевое слово static в классе описывает, что член является статическим. Статический может ограничивать внешний доступ, поскольку члены после статического принадлежат классу и не принадлежат ни одному экземпляру объекта. Они недоступны для других классов и доступны только для класса. Совместное использование экземпляров может гарантировать, что программа полностью защищает участников. Статические переменные класса очень похожи на глобальные переменные и могут использоваться всеми экземплярами класса. То же самое справедливо и для статических методов класса, аналогичных глобальным функциям. Статические методы класса могут получать доступ к статическим свойствам класса. Кроме того, доступ к статическим членам должен осуществляться с помощью self. Использование этого параметра приведет к ошибке.
(Чтобы узнать о сходствах и различиях между этим и самим собой, обратитесь к: http://blog.csdn.net/heiyeshuwu/archive/2004/11/03/165828.aspx ).
(2) константа
const — ключевое слово, определяющее константу, аналогично #define в C. Оно может определять константу. Если ее значение будет изменено в программе, произойдет ошибка.
Приведите пример приведенного выше кода: (Примечание: следующий код взят с phpe.net)
<?php
class Counter
{
Private static $count = 0;//Определение статического свойства
const VERSION = 2.0;//Определить константу
//Конструктор
function__construct()
{
сам::$count++;
}
//деструктор
функция __destruct()
{
self::$count--;
}
//Определяем статический метод
статическая функция getCount()
{
вернуть себя::$count;
}
}
//Создаем экземпляр
$c = новый счетчик();
//Выполняем печать
print( Counter::getCount(). "<br>n" ); //Используем прямой ввод имени класса для доступа к статическому методу Counter::getCount
//Распечатываем версию класса
print( "Использованная версия: " .Counter::VERSION. "<br>n"
?>
Ну, по сути, на данный момент я ясно дал понять, что знаю в глубине души, но чувствую, что все еще немного неудобно из-за статики, я понимаю, пожалуйста, дайте мне несколько советов!
Мой адрес электронной почты: [email protected]
WriteTime 3 ноября 2004 г., 21:00
http://dev.csdn.net/author/heiyeshuwu/23f0d08c11bc4509b41844855d5c7063.html