Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Классы 
:(
    Опции темы
GQU
Дата 2.4.2011, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 13.2.2011

Репутация: нет
Всего: нет



Почему на 6 строке ошибка ?
Код

<?php
class A {
    var $name;

     function Setname($name){
      $this->name=$name;
      echo $this->$name;
     }
}

class B extends A {
}

$str1='...';
$str2='........';
A::Setname($str1);
$b = new B;
$b->Setname($str2);
?>

PM MAIL   Вверх
Muerto
Дата 2.4.2011, 18:15 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



GQU, Название метода должно быть с маленькой буквы , и каждое слово или через черточку, или с большой буквы

а возможно здесь если у вас php5
Код

   var $name;


И здесь

Код

 echo $this->$name;

->$n

Это сообщение отредактировал(а) Muerto - 2.4.2011, 19:13


--------------------
user posted image
PM MAIL   Вверх
нуп
Дата 2.4.2011, 18:35 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



A::Setname($str1);
Вызываете статическую функцию?  smile 
PM MAIL   Вверх
bars80080
Дата 2.4.2011, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Muerto @  2.4.2011,  18:15 Найти цитируемый пост)
Название метода должно быть с маленькой буквы , и каждое слово или через черточку, или с большой буквы

почему должно?

Цитата(Muerto @  2.4.2011,  18:15 Найти цитируемый пост)
а источник ошибки  я думаю здесь
Выделить всёкод PHP
1:
    
   var $name;

нет


Код

 echo $this->name;


PM MAIL WWW   Вверх
Muerto
Дата 2.4.2011, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



bars80080,
Что нет то   smile 
Код

echo $this->$name;



А плохо
Setname

потому что так не принято ( конечно каждый может писать как ему угодно...)

Ну это coding standarts...

На самом деле через черточку тоже считаю не очень хорошей практикой... но так принято в php  , так что в php простительно


Иначе нафиг индентация? машина и так все разберет  smile 

Это сообщение отредактировал(а) Muerto - 2.4.2011, 19:52


--------------------
user posted image
PM MAIL   Вверх
bars80080
Дата 2.4.2011, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Muerto @  2.4.2011,  19:06 Найти цитируемый пост)
Что нет

а править свои слова и потом возражать - плохо, попахивает детством. спрятал разбитую игрушку - и вроде нет ничего.


Цитата(Muerto @  2.4.2011,  19:06 Найти цитируемый пост)
А плохо
Setname

потому что так не принято

кем не принято? папой римским?

Цитата(Muerto @  2.4.2011,  19:06 Найти цитируемый пост)
Ну это coding standarts...

ну-ка, ну-ка, можно мне ссылку на эти стандарты, а главное ссылку на уголовный или административный кодекс, который запрещает нарушать их



если советуешь что-то, то отделяй указания на ошибку и рекомендации по оформлению. а то у тебя выходит, что из-за строчной буквы в названии функции, ошибка получается.
PM MAIL WWW   Вверх
Muerto
Дата 2.4.2011, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



bars80080, 
Мною была исправлена всего одна строка
Было:
Цитата

GQU, Название метода должно быть с маленькой буквы , и каждое слово или через черточку, или с большой буквы

Источник ошибки возможно здесь
Код

   var $name;


И здесь

Код

 echo $this->$name;

->$n


Патом я решил уточнить насчет var

и написал то что есть сейчас

Цитата

GQU, Название метода должно быть с маленькой буквы , и каждое слово или через черточку, или с большой буквы

а возможно здесь если у вас php5
Код

   var $name;


И здесь

Код

 echo $this->$name;

->$n



Так что все как было так и осталось...


Я КОНКРЕТНО УКАЗАЛ НА ОШИБКУ, может ещё раз 10 написать 
Код

 echo $this->$name;

->$n 


А насчет coding standarts - в Php их устанавливает Zend...

Я вам как ZCE говорю как они советуют...
Это не секрет ни для кого, все на их сайте есть...
Можно на фреймворк посмотреть тоже...

А как студент B.sc Computer Science ещё и добавляю как учат нас  smile 

Название класса всегда с крупной буквы, константы крупными и через черточку, методы с маленькой буквы и каждое новое слово с большой буквой... и тп.
В Php ещё принято разделять черточкой а не заглавной

Что тут ещё добавить... Peace и я думал что подчеркнутый знак $ увидят... ну в след раз не буду оставлять загадок  smile 

Это сообщение отредактировал(а) Muerto - 2.4.2011, 22:57


--------------------
user posted image
PM MAIL   Вверх
bars80080
Дата 2.4.2011, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Muerto @  2.4.2011,  22:53 Найти цитируемый пост)
Так что все как было так и осталось...

нет, поменялось в корне, так именно от версии пхп зависит верность выражения


Цитата(Muerto @  2.4.2011,  22:53 Найти цитируемый пост)
Я КОНКРЕТНО УКАЗАЛ НА ОШИБКУ, может ещё раз 10 написать 
Выделить всёкод PHP
1:
    
 echo $this->$name;

->$n 

охрененно непонятно для одного символа. трудно написать так, как должно быть? какое-то n взялось? специально, чтобы поупражнять мозг?


Цитата(Muerto @  2.4.2011,  22:53 Найти цитируемый пост)
А насчет coding standarts - в Php их устанавливает Zend...

Я вам как ZCE говорю как они советуют...
Это не секрет ни для кого, все на их сайте есть...
Можно на фреймворк посмотреть тоже...

А как студент B.sc Computer Science ещё и добавляю как учат нас 

и что? а вот Семён Петрович Удьяненко учит делать приседания после каждых 40 минут работы. ты исполняешь эту рекомендацию?
и потом, где ссылка на уголовный или административный кодекс, который запрещает нарушать их?


Цитата(Muerto @  2.4.2011,  22:53 Найти цитируемый пост)
и я думал что подчеркнутый знак $ увидят

 smile  он не подчёркнут
PM MAIL WWW   Вверх
Muerto
Дата 2.4.2011, 23:14 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



bars80080, Ну блин он ЖИРНЫЙ , все равно что подчеркнут  smile  

А насчет coding-standarts Это лишь совет... хотите программируйте "не правильно"
Лучшие умы мира выходили за рамки обще принятого и добивались удевительного успеха...
Иногда да стоит изобретать велосипеды... но дело это как правило ну очень не благодарное  smile 

Кстати вот немного от Zend http://framework.zend.com/manual/en/coding...ding-style.html


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 2.4.2011, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(GQU @  2.4.2011,  17:08 Найти цитируемый пост)
Почему на 6 строке ошибка ?

А что ты вообще хотел добиться этим кодом?
Ты пытался вызвать метод? Или просто сделать сеттер?

Цитата(Muerto @  2.4.2011,  17:15 Найти цитируемый пост)
->$n

И че? Мне от этого стало еще непонятней. В рекомендациях от Zend нигде не написано, что стоит преднамеренно усложнять код, там наоборот написано, что переменным надо давать осмысленные имена.

Это во-первых:
Цитата(нуп @  2.4.2011,  17:35 Найти цитируемый пост)
A::Setname($str1);
Вызываете статическую функцию?    

Это во-вторых:
Цитата(bars80080 @  2.4.2011,  17:37 Найти цитируемый пост)
echo $this->name;


Я вообще до последнего думал, что автор пытается вызвать некий метод.

И если уж зашла речь о каких либо правилах, то тогда уж
Цитата(GQU @  2.4.2011,  17:08 Найти цитируемый пост)
public\private\protected $name;


Добавлено через 3 минуты и 33 секунды
Цитата(Muerto @  2.4.2011,  21:53 Найти цитируемый пост)
Я вам как ZCE говорю как они советуют...

Я вам как обычный человек говорю, что так
Цитата

->$n

они точно не советуют
PM WWW Skype   Вверх
Muerto
Дата 2.4.2011, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



SneG0K, Автор скорее всего использует php4 я не уверен что там вообще protected есть... там норм инкапсуляции полей нету, да и методов...

Давай один раз и навсегда покончим с загадками

->$n
Говорит лишь об одном
Ошибка в 6той строке потому что автор написал

Код

echo $this->$name;


а нужно
Код

echo $this->name;


Разница именно в несчастном долларе... такой уж синтакс у php , вините не меня smile 


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 3.4.2011, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата

Разница именно в несчастном долларе... такой уж синтакс у php , вините не меня

У него нормальный синтаксис.
Ты сам написал 
Цитата

->$n


Добавлено через 35 секунд
На самом деле в 6-й строке ошибки нет
PM WWW Skype   Вверх
Gold Dragon
Дата 3.4.2011, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



я в шоке  smile ... ошибку сразу увидел, но так и не понял что такое 
Код

echo $this->$name;

->$n

пока Muerto не написал 
Цитата

а нужно

echo $this->name;


Muerto, ты умеешь заинтриговать smile Пришлось даже дочитать до конца чтобы понять что ты имеешь в виду


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
нуп
Дата 3.4.2011, 10:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Цитата(bars80080 @  2.4.2011,  23:03 Найти цитируемый пост)
 вот Семён Петрович Удьяненко


Откуда вы знаете как меня зовут  smile 
PM MAIL   Вверх
MoLeX
Дата 4.4.2011, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Muerto @  2.4.2011,  18:15 Найти цитируемый пост)
Название метода должно быть с маленькой буквы

Цитата(Muerto @  2.4.2011,  22:53 Найти цитируемый пост)
А насчет coding standarts - в Php их устанавливает Zend...

ерунда


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.