Revision as of 06:40, 5 February 2022 editHooman Mallahzadeh (talk | contribs)Extended confirmed users3,900 edits →SampleCode replaces Screenshot in this type of Infobox← Previous edit | Revision as of 11:38, 5 February 2022 edit undoAncarda (talk | contribs)59 edits →SampleCode replaces Screenshot in this type of InfoboxNext edit → | ||
Line 114: | Line 114: | ||
::{{ping|Ancarda}} I have a question: What comes at the first glance in your mind when you hear the word "PHP"? For myself at the first glance is a small program like "Hello world", that is a typical instance of the total concept of programming language PHP. What about you? ] (]) 06:34, 5 February 2022 (UTC) | ::{{ping|Ancarda}} I have a question: What comes at the first glance in your mind when you hear the word "PHP"? For myself at the first glance is a small program like "Hello world", that is a typical instance of the total concept of programming language PHP. What about you? ] (]) 06:34, 5 February 2022 (UTC) | ||
:::{{ping|Ancarda}} Or a better guestion: How you would explain the concept of PHP language to a bachelor student at his first term? Perhaps you would use a simple example, and not explain items like "Paradigm", "type discipline", and others. OK? Here we use "Hello World" program at Infobox to introduce PHP for a person who does not have any skill in programming. ] (]) 06:40, 5 February 2022 (UTC) | :::{{ping|Ancarda}} Or a better guestion: How you would explain the concept of PHP language to a bachelor student at his first term? Perhaps you would use a simple example, and not explain items like "Paradigm", "type discipline", and others. OK? Here we use "Hello World" program at Infobox to introduce PHP for a person who does not have any skill in programming. ] (]) 06:40, 5 February 2022 (UTC) | ||
---- | |||
{{ping|Hooman Mallahzadeh}} | |||
''For myself at the first glance is a small program like "Hello world", that is a typical instance of the total concept of programming language PHP'' | |||
I'm not sure what you mean by total concept. Printing something to the console doesn't seem to demonstrate enough differences between programming languages. Just from hello world, what differences can you see between these two languages: | |||
<syntaxhighlight lang="python"> | |||
print("hello world") | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="haskell"> | |||
main = putStrLn "hello world" | |||
</syntaxhighlight> | |||
It looks like you can just substitute some function calls <code>print -> putStrLn</code> and change the syntax slightly (i.e. drop parens) to translate Python into Haskell... but you can't. These snippets miss a very important fact that <code>print</code> has side-effects and <code>putStrLn</code> actually returns an <code>IO ()</code>, i.e. it's monadic. It also misses the fact Python is primarily a scripting language, and so many programs will use <code>__name__</code> so the programs functions can be included without executing. PHP works this way too; code outside functions will execute immediately. | |||
If we want to give a "feel" for what these languages are like, we could expand the example, which will surface many of the differences: | |||
<syntaxhighlight lang="python"> | |||
import sys | |||
def main(): | |||
print("Type something to have it printed back") | |||
for line in sys.stdin: | |||
print(line, end = "") | |||
if __name__ == "__main__": | |||
main() | |||
</syntaxhighlight> | |||
vs. | |||
<syntaxhighlight lang="haskell"> | |||
printInput :: IO () | |||
printInput = getLine >>= (\x -> putStrLn x) >> printInput | |||
main :: IO () | |||
main = | |||
putStrLn "Type something to have it printed back" >> | |||
printInput | |||
</syntaxhighlight> | |||
Do you see how different the languages look just by doing something slightly more complicated than printing a fixed string to standard out? The issue I have is these snippets are now too large to put in the infobox -- again, my question is why we're replacing the screenshot with a snippet. It seems like a step back to me. If it was discussed and established somewhere, then please let me know (i.e. link me to the decision). If not (i.e. this is your proposal), I really don't see the value. Sorry. | |||
''Here we use "Hello World" program at Infobox to introduce PHP for a person who does not have any skill in programming'' | |||
I've always had the impression Misplaced Pages is a reference for people who already know quite a bit about the topic they are reading up on, i.e. Misplaced Pages is not the place to go for an introduction to a topic. Perhaps I'm mistaken. ] (]) 11:37, 5 February 2022 (UTC) |
Revision as of 11:38, 5 February 2022
Skip to table of contents |
This is the talk page for discussing improvements to the PHP article. This is not a forum for general discussion of the article's subject. |
|
Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
PHP has been listed as one of the Engineering and technology good articles under the good article criteria. If you can improve it further, please do so. If it no longer meets these criteria, you can reassess it. | ||||||||||||||||
| ||||||||||||||||
Current status: Good article |
This article has not yet been rated on Misplaced Pages's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Please add the quality rating to the {{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
{{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
{{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
{{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
|
A fact from this article was featured on Misplaced Pages's Main Page in the On this day section on June 8, 2007, June 8, 2008, June 8, 2009, June 8, 2010, June 8, 2012, June 8, 2015, and June 8, 2020. |
The contents of the Visibility of PHP properties and methods page were merged into PHP on 08:41, July 28, 2010. For the contribution history and old versions of the redirected page, please see its history; for the discussion at that location, see its talk page. |
The contents of the PHP Data Objects page were merged into PHP on July 15, 2014. For the contribution history and old versions of the redirected page, please see its history; for the discussion at that location, see its talk page. |
Archives | ||||||||
|
||||||||
This page has archives. Sections older than 100 days may be automatically archived by Lowercase sigmabot III when more than 4 sections are present. |
Using Type Declaration instead of Type Hints
As my change has been reverted it seems appropriate to discuss the matter.
The PHP documentations refers to them as Type declaration, see: https://www.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration, and the original RFC introducing scalar types, uses the word "declaration", see: https://wiki.php.net/rfc/scalar_type_hints_v5 Although it is true that the PHP 5 documentation referred to them as "hints", and that the "Object Typehint" RFC is named as such but for all intent and purposes it is a type declaration.
Moreover, the word "declaration" is used in other places correctly instead of "hint", see:
PHP 7 also included new language features. Most notably, it introduces return type declarations for functions which complement the existing parameter type declarations, and support for the scalar types (integer, float, string, and boolean) in parameter and return type declarations.
Unusually for a dynamically typed language, PHP supports type declarations on function parameters, which are enforced at runtime. This has been supported for classes and interfaces since PHP 5.0, for arrays since PHP 5.1, for "callables" since PHP 5.4, and scalar (integer, float, string and boolean) types since PHP 7.0. PHP 7.0 also has type declarations for function return types, expressed by placing the type name after the list of parameters, preceded by a colon. For example, the getAdder function from the earlier example could be annotated with types like so in PHP 7:
By default, scalar type declarations follow weak typing principles.
(Emphasis mine)
As I'm new to contributing to Misplaced Pages, I don't know what to do about the following comment from the revert commit
"typehint" is the commonly used term in the community.
As sure it is referred to that but it is not accurate, and my understanding is that Misplaced Pages articles should be accurate.
Can someone more experienced clarify?
Syntax highlighting
The syntaxhighlight
tag does not support modern PHP syntax:
$person = new class { public $firstName = "John"; public $lastName = "Smith"; public function name(){ return "$this->firstName $this->lastName"; } };
or
class MyClass { public string $var1; public array $var2; function pr(string|int $array, array|null $subj): float|false { } } $myObj->pr(subj: , array: "John");
37.212.37.47 (talk) 17:10, 25 January 2021 (UTC)
Dropping legacy file extensions
The infobox currently has this for file extensions:
php, phtml, php3, php4, php5, php7, phps, php-s, pht, phar
Some of these are extremely rare to see in the wild, like php3
. I am wondering if it would make sense to drop these from the infobox, so we are left with just the common ones (roughly sorted by how common):
php, phar, phps, phtml
And then perhaps we have a line somewhere in the article that explains why you might come across something like .php3
in a legacy system? Modern PHP just does not have all these silly extensions.
Ancarda (talk) 09:13, 3 May 2021 (UTC)
SampleCode replaces Screenshot in this type of Infobox
@Ancarda: Hi, SampleCode argument is new and it should be used is instead of the past argument "screenshot". See, SampleCode has an abstract description of the total programming style. It conveys important information about remaining parts of this Infobox. So we should use this argument as the second rendering item, to successfully convey an overview of PHP language. Thanks, Hooman Mallahzadeh (talk) 12:22, 3 February 2022 (UTC)
- Dear @Peterl: Please read the above paragraph. By the same reason, perhaps we should apply that for Java and Javascript. If you disagree, please discuss that here. Thanks, Hooman Mallahzadeh (talk) 17:55, 3 February 2022 (UTC)
@Hooman Mallahzadeh:. Interesting, it seems some languages have sample code in a screenshot, I wasn't aware of that. I had a look through the Wayback Machine and it seems the PHP article never did. Nevertheless, the article has many code snippets, i.e. https://en.wikipedia.org/PHP#Example demonstrates OOP, string concatenation, list usage (,
foreach
), closures & functional programming (array_walk
), string interpolation, and one style of comments (//
).
I appreciate the infobox might support a snippet to give a feel of the language, but just having hello world there doesn't seem useful to me. Perhaps it's useful to other people, I'm not sure. I especially feel this as https://en.wikipedia.org/PHP#Syntax gives two different ways to accomplish hello world. I honestly think a screenshot is fine -- is that deprecated for accessibility reasons? It seems like you'd have to put a lot of text there to make it useful (which you can't fit into the infobox), or somehow make it expand (like an image does today when you click on it).
Do a lot of other languages have this? I will admit I reverted your edit because I had seen previous similar edits reverted too, e.g. https://en.wikipedia.org/search/?title=JavaScript&diff=next&oldid=1069635829&diffmode=source Ancarda (talk) 05:47, 5 February 2022 (UTC)
- @Ancarda: I have a question: What comes at the first glance in your mind when you hear the word "PHP"? For myself at the first glance is a small program like "Hello world", that is a typical instance of the total concept of programming language PHP. What about you? Hooman Mallahzadeh (talk) 06:34, 5 February 2022 (UTC)
- @Ancarda: Or a better guestion: How you would explain the concept of PHP language to a bachelor student at his first term? Perhaps you would use a simple example, and not explain items like "Paradigm", "type discipline", and others. OK? Here we use "Hello World" program at Infobox to introduce PHP for a person who does not have any skill in programming. Hooman Mallahzadeh (talk) 06:40, 5 February 2022 (UTC)
- @Ancarda: I have a question: What comes at the first glance in your mind when you hear the word "PHP"? For myself at the first glance is a small program like "Hello world", that is a typical instance of the total concept of programming language PHP. What about you? Hooman Mallahzadeh (talk) 06:34, 5 February 2022 (UTC)
For myself at the first glance is a small program like "Hello world", that is a typical instance of the total concept of programming language PHP
I'm not sure what you mean by total concept. Printing something to the console doesn't seem to demonstrate enough differences between programming languages. Just from hello world, what differences can you see between these two languages:
print("hello world")
main = putStrLn "hello world"
It looks like you can just substitute some function calls print -> putStrLn
and change the syntax slightly (i.e. drop parens) to translate Python into Haskell... but you can't. These snippets miss a very important fact that print
has side-effects and putStrLn
actually returns an IO ()
, i.e. it's monadic. It also misses the fact Python is primarily a scripting language, and so many programs will use __name__
so the programs functions can be included without executing. PHP works this way too; code outside functions will execute immediately.
If we want to give a "feel" for what these languages are like, we could expand the example, which will surface many of the differences:
import sys def main(): print("Type something to have it printed back") for line in sys.stdin: print(line, end = "") if __name__ == "__main__": main()
vs.
printInput :: IO () printInput = getLine >>= (\x -> putStrLn x) >> printInput main :: IO () main = putStrLn "Type something to have it printed back" >> printInput
Do you see how different the languages look just by doing something slightly more complicated than printing a fixed string to standard out? The issue I have is these snippets are now too large to put in the infobox -- again, my question is why we're replacing the screenshot with a snippet. It seems like a step back to me. If it was discussed and established somewhere, then please let me know (i.e. link me to the decision). If not (i.e. this is your proposal), I really don't see the value. Sorry.
Here we use "Hello World" program at Infobox to introduce PHP for a person who does not have any skill in programming
I've always had the impression Misplaced Pages is a reference for people who already know quite a bit about the topic they are reading up on, i.e. Misplaced Pages is not the place to go for an introduction to a topic. Perhaps I'm mistaken. Ancarda (talk) 11:37, 5 February 2022 (UTC)
Categories:- Misplaced Pages good articles
- Engineering and technology good articles
- Old requests for peer review
- All unassessed articles
- GA-Class Computing articles
- Mid-importance Computing articles
- GA-Class software articles
- Unknown-importance software articles
- GA-Class software articles of Unknown-importance
- All Software articles
- GA-Class Free and open-source software articles
- High-importance Free and open-source software articles
- GA-Class Free and open-source software articles of High-importance
- All Free and open-source software articles
- All Computing articles
- GA-Class Computer science articles
- Mid-importance Computer science articles
- WikiProject Computer science articles
- GA-Class Internet articles
- Mid-importance Internet articles
- WikiProject Internet articles
- Mid-importance software articles
- GA-Class software articles of Mid-importance
- Unknown-importance Computing articles
- Selected anniversaries (June 2007)
- Selected anniversaries (June 2008)
- Selected anniversaries (June 2009)
- Selected anniversaries (June 2010)
- Selected anniversaries (June 2012)
- Selected anniversaries (June 2015)
- Selected anniversaries (June 2020)