*   >> Чтение Образование Статьи >> science >> programming

Php Reference

<р> Основы PHP - Часть 14 Введение Это часть 14 моей серии, Основы PHP. В PHP ссылки средство для доступа к той же переменной содержание (значение) с разными именами. Значения (содержимое переменной) хранятся в ячейках памяти. Переменная определяет ячейку памяти. Ссылка, как правило, используется, когда вы больше заинтересованы в том, что в ячейке памяти, а не переменной. PHP ссылка отличается от ссылки в других языках программирования.

Когда вы будете читать эту статью, избежать сравнения с тем, что вы читаете или то, что существует в других языках программирования, как C, так как это может сбить вас с толку. Я сделал все возможное, чтобы поставить это в логической прогрессивной манере, так принимать вещи такими, я даю вам. Примечание: Если вы не видите код или, если вы думаете, что-то отсутствует (неработающую ссылку, изображение отсутствует), просто свяжитесь со мной в [email protected]. То есть, свяжитесь со мной для малейшей проблемы у вас есть о том, что вы читаете.

Ячейка памяти в ячейку памяти является областью в памяти компьютера, что имеет значение переменной. Технику, чтобы работать с одним Откуда памяти Рассмотрим следующее заявление: $ VAR = 5; Значение 5 в ячейку памяти. Вы можете использовать эту же ячейку памяти для увеличения значения от 5 до 8, добавляя 3. Вы бы сделать это: $ переменная = $ VAR + 3; Как это происходит: Компьютер знает, что $ Var определяет местоположение памяти, который имеет количество 5. Для правого операнда вышеназванного заявления, компьютер переходит в ячейку памяти, идентифицированной $ Var и добавляет 3 к какой есть.

Что есть 5. Когда 3 добавляется, у вас есть 8 в ячейке памяти, идентифицированной $ вар. Расположение имея 8, который был назначен на переменной $ Var, по-прежнему назначается и той же переменной. Вдоль линии, ничего не изменилось назначение. Тот же принцип применяется к строкам, как в следующем примере: $ переменная = "один"; $ переменная = $ Var. " два"; Обратите внимание, здесь, что во втором заявлении, есть точка между $ Var и «два». Это называется оператором точка; он присоединяется две строки вместе. В первом заявлении, $ Var имеет значение, "один".

Переменная, $ Var определяет местоположение, имеющий, "один". Во втором заявлении, для правого операнда "две" добавляется (присоединился) в этом месте, чтобы дать строку, "один два". Идентификация этом месте не изменилась. Так $ Var еще определяет местоположение. Расположение все еще присваивается переменной $ Var. Таким образом, чтобы изменить содержание месте, мы использовали то же самое место вместо двух разных местах.

Разных местах памяти с различными переменными Рассмотрим следующие два последовательных высказывания: $ MYVAR = "Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти."; $ аварского = "Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти."; У вас есть два различных переменных с разными именами, но с теми же значениями строк. Переменная определяет ячейку памяти. Два различных переменных с двумя разными именами идентифицирует два различных ячеек памяти, все равны.

В приведенном выше случае, два значения, даже если такие же, находятся в двух разных ячейках памяти. То же местоположение памяти для двух различных переменных в PHP вы можете сделать то же самое место в памяти есть два различных переменных. Два различных переменных будет, конечно, определить то же самое значение. Рассмотрим следующие последовательные два заявления: $ MYVAR = "Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти."; $ hisVar = & $ MYVAR; Для первого оператора у вас есть значение, присваиваемое переменной, $ MYVAR.

Во втором заявлении, $ MYVAR предшествует с & знак перед назначением на новую переменную, $ hisVar. И является оператором. Во втором заявлении, и оператор, предшествующий первой переменной, делает вторая переменная определяет то же место памяти (и то же значение) в качестве первой переменной. Важная вещь, чтобы отметить здесь, что и $ MYVAR относится к содержанию ячейки памяти. Можно также сказать, что и $ MYVAR относится к значению в ячейке памяти.

Для второго утверждения, & $ MyVar, с &, можно считать в качестве ссылки, но $ hisVar не могут рассматриваться в качестве ссылки; пожалуйста, примите это. $ hisVar является переменной, а не ссылка, просто принять это. & $ MYVAR присваивается (не приравнивается) до $ hisVar и в ходе них возлагаются он составляет $ hisVar определить то же место памяти в качестве $ MYVAR; принять это. Примите эти три предложения я только что. Пытаясь понять, почему они, как что может сделать вас не понимаю, PHP ссылок.

Теперь, если вы наберете, $ MYVAR = "человек"; или $ hisVar = "женщина"; Содержание же ячейки памяти, идентифицированной $ MyVar а также $ hisVar изменится. Первое утверждение будет изменить содержимое на «человека» и второе заявление будет изменить его на "женщина". С ссылками, например, как $ MYVAR и $ hisVar определить и то же значение (ячейки памяти). Использование ссылки без предварительной декларации или назначение в предыдущем разделе, и $ MYVAR был назначен $ hisVar и $ MYVAR уже объявлены. Вы можете использовать ссылку без предварительной декларации или назначения.

Ссылка состоит из & следует имя переменной. Имя переменной не существовать до, как и в описанном выше случае. В приведенном выше случае, у вас есть и $ MYVAR, где $ MYVAR существовали раньше. Вы можете использовать такие ссылки в выражениях и отчетности. Вы не можете начинать заявление с такой ссылкой. Вы не можете объявить переменную с такой ссылкой. Таким образом, вы не можете сделать это: & $ исх = "некоторое значение"; //неправильно, когда у вас есть ссылка, как и $ работе в сегменте кода, вы можете присвоить его переменной косвенно.

Аргумент, который является переменной, объявленной-то, возможно, возложенные на него ссылка, во время вызова функции. Что-то вроде: $ theVar = myFn ($ var1); где $ var1 переменная объявлена ​​где-то (выше) в коде. Функция, myFn (), возвращает & $ реф во время выполнения, который присваивается $ theVar. Мы можем сказать, что это назначение было сделано косвенно. Ссылка относится к ячейке памяти. Вы можете использовать ссылку делать все, что вы хотите сделать с расположением памяти, такие как изменения содержания ячейки памяти.

Вы можете присвоить косвенно ссылку на переменную, а затем использовать содержимое ячейки памяти, с помощью переменной. В этом содержание статьи в ячейке памяти и значением (буквальном), означает то же самое. Когда вы знаете, смысл ведения; что один из этапов понимания ссылок. Следующее, что нужно сделать, это узнать, как его использовать. Читай дальше. Недостаток не используя ссылки в определенных ситуациях Представьте себе, что у вас есть текстовый файл на жестком диске, и содержание этого файла в настоящее время в памяти.

Вы, возможно, это содержание в виде строки, назначенного переменной, в обычном порядке, в коде. То, что вы действительно хотите делать с таким большим содержанием из файла, чтобы изменить некоторые из его текста, удалить некоторые из его текста или добавить некоторые новые тексты к содержанию. После этого вы сохранить содержимое обратно в виде файла на жесткий диск, и вы больше не нужно содержание в памяти. Следующий код демонстрирует один из способов, чтобы добавить (добавить в конце) текст такого содержания (он имеет недостаток): $ var1 = ".

Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти"; Функция appendFn ($ var2) {$ var2 = $ var2. "В последний текст."; вернуть $ var2; } $ Var1 = appendFn ($ var1); Эхо $ var1; ?> В начале кода, у вас есть переменная, $ var1. Для этой переменной присваивается строковое значение. Это значение строка коротка, но пусть это представляют содержание большого текстового файла. Далее, у вас есть функция, appendFn (). Эта функция добавляет строку ", последний текст." в строку переменной, $ var1.

Функция называется следующим образом: appendFn ($ var1), где переменная, $ var1 отправляется в качестве аргумента. Сама функция имеет параметр, $ var2. Когда функция вызывается, этот параметр определяет значение аргумента отправлено. Этот параметр на самом деле переменная отличается от $ var1. $ var2 содержит значение аргумента, направленного вызывающего оператора. Так что, прежде чем функция выполняется, у вас есть два различных переменных, идентифицирующих то же значение.

Тем не менее, ни одна из этих переменных не имеет дело с привязкой, так что вы должны и то же значение в двух разных местах в памяти. Одним из мест идентифицируется $ var1, а другой идентифицируется $ var2. Этот статус продолжается до конца выполнения программы. Есть два заявления в определении функции. Первый оператор добавляет строку ", последний текст." к значению переменной, $ var2. Второй оператор возвращает значение переменной, $ var2. Функция вызова заявление в коде (вне определения функции) получает это значение и повторно назначает его переменной $ var1,.

В этом коде, не привязка не был официально использован. Таким образом, две переменные каждый имеет свое собственное местоположение памяти. Одна переменная вне определения функции, а другой находится внутри определения функции. Место для переменной вне определения функции, изначально имеет строковое значение. После вызова функции, это место имеет веревку добавил к нему. Место для переменной внутри определения функции изначально имеет строку, что расположение переменной пределами имеет. Второе утверждение в определении функции добавляет веревку к месту.

Следует отметить, что способ, описанный выше, был использован здесь. Существование этих двух местах является пустой тратой памяти. С ссылок, эти два места могут быть сведены к одной точки (см. Ниже) Теперь, память всегда мало. Это не как деньги, независимо от того, сколько у вас есть, вы все еще есть причины нужно больше денег. В приведенном выше коде, вся память не экономного использования. Вы должны всегда стараюсь использовать как можно меньше памяти, как вы можете, если это возможно.

Знайте, что использование ссылок приводит к экономному использованию памяти и улучшенную производительность вашего кода. Передача переменной по ссылке Есть ситуации, когда нужно просто обратиться к ячейке памяти, переменная расположения памяти не очень важно. Не было бы приятно, если у вас есть ссылка, которая просто указывает на местонахождение переменной $ var1 в коде выше. Вы можете использовать ссылку, чтобы добавить кусок строки. После вызова функции (заявление) и выполнения функции, вам не нужно ссылку больше.

Таким образом, вы будете иметь только один тип памяти, чтобы справиться с; а не два, как раньше. Таким образом, вы сэкономить память и есть повышение производительности. Следующий код иллюстрирует эту (см объяснение ниже): $ var1 = "Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти."; функционировать appendFn (& $ реф) {$ = $ исх исх. "В последний текст."; вернуться $ реф; } $ Var1 = appendFn ($ var1); Эхо $ var1; ?> Код и предыдущий схожи. Разница в определении функции. Когда функция вызывается, переменная, $ var1 передается в качестве аргумента.

Параметр функции в настоящее время является справка. Переменная часть ($ ссылка) этой ссылки не ранее заявил. Эта ссылка не отнесены к новой переменной и никогда не будет назначен, непосредственно (вы никогда не будете иметь что-нибудь подобное, $ someVar = & $ исх). Тем не менее, это косвенно присваивается $ var1 в начале выполнения функции. Так как функция выполняется, как $ var1 и $ & исх означает то же место в памяти. Кусок кода, рассмотрим в качестве ссылки, начинается с &, а затем имя переменной, например $ исх, который начинается с $ подписан.

Внутри определения функции, вы используете переменную часть имени предшествует в $ решения местоположение упомянутого ссылкой. Как я уже сказал выше, после того, зная ссылку смысл, вы должны узнать, как использовать его. В этом коде, $ исх внутри определения функции имеет в виду то же место, $ var1 снаружи. Возвращение оператор использует $ реф вернуть содержание (значение) ячейки памяти. Он не использует & $ реф, хотя и $ исх эффективно то, что функция вызов возвращается. Это происходит здесь, что источник и назначение расположение содержания являются одинаковыми.

Как вы можете видеть, мы использовали только одну ячейку памяти вместо двух (как в предыдущем случае). Мы добились экономии памяти и повышения производительности. Функция возвращает ссылку в коде выше, ссылка была возвращена. Тем не менее, это не все случаи, когда расположение ссылки то же самое, что и передачи аргумента. Некоторые функции могут не иметь параметр (так не получают аргумент), но вы хотели бы, чтобы это вернуть ссылку. Функция в следующем коде не получит аргумент. Функция возвращает ссылку и в вызывающем заявлении, ссылка косвенно присваивается переменной.

Функция & AFN () {$ MYVAR = "значение"; вернуть $ MYVAR; } $ TheVar = AFN (); Эхо $ theVar; ?>

Page   <<       [1] [2] [3] [4] [5] [6] [7] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.