*** NOTE: I may add to this post after the Week 9 Labs!!! *** ===== CS 328 - Week 9 Lecture 1 - 2025-03-24 ===== ===== TODAY WE WILL ===== * announcements * APPLICATION TIER: starting intro to PHP * start introducing PHP basics * prep for next class ===== * should be working on Homework 7 * at least first attempts due by 11:59 pm on Friday, March 28 * submit files early and often! * watch for class email when zyBooks Chapter 5 - PHP Fundamentals is available * note the posted recordings on CSS flexbox and grid layouts on Canvas, in the section "Class Recordings" ===== intro to PHP ===== * goal: a useful subset of PHP to get you started creating small web applications that use the Oracle student database * to use PHP on the application tier! * created by Rasmus Lerdorf in 1994 * originally: stood for "Personal Home Page" * but ... after many expansions ... then changed to stand for: PHP: Hypertext Preprocessor ^ yes, that's a recursive acronym * PHP is free to use, ships with the Apache web server, is one of NUMEROUS choices for application-tier programming You can embed PHP within HTML BUT: the PHP is executed ON THE APPLICATION TIER. * Much of its syntax is borrowed from C, Java, and Perl (!), with some PHP-particular features thrown in; * typically, you put your PHP in a file whose suffix is .php * whether it is a file of PHP functions, or HTML code with PHP embedded within it 1. when a client-tier browser requests a document with suffix .php 2. the WEB SERVER on the application tier directs that request (and any accompanying name=value pairs, if this action is a form submission) to the PHP ENGINE also running on the application tier 3. The PHP Engine executes the PHP in the requested document, possibly using the accompanying data, on the application tier 4. ...and returns the result (which now contains no PHP) to the WEB SERVER 5. ...and the WEB SERVER returns that response to the CLIENT browser 6. ...and the CLIENT browser typically DISPLAYS the returned result. * the client tier should see NO PHP!!! just the results of EXECUTING the PHP (because the PHP is executed on the APPLICATION TIER) ===== * on an application tier terminal, php -version ...will let you see your version of PHP * see the posted PHP references page! * NOTE that the PHP home page -- php.net and the PHP manual https://www.php.net/manual/en/ are USEFUL references ===== the TWO kinds of PHP tags we'll be using in CS 328: ===== * regular PHP tag <?php PHP_statement; PHP_statement; ... PHP_statement; ?> * these statements are executed by the PHP preprocessor * PHP expression tag <?= desired_PHP_expr ?> * you should embed a single PHP expression (simple or compound, that has a value) * when executed, the value of this expression will replace this expression tag in the executed result * and class style: your PHP should be within either regular PHP tags or PHP expression tags ===== PHP comments - *** these MUST be in a PHP tag! *** ===== /* I am a multi line comment */ // I am a single line comment # this is also a single-line comment ===== some PHP basic types ===== * loosely typed -- every expression has a type, but a variable's type will be type of its value... * four scalar data types: integer float string boolean * two non-scalar data types: arrays objects * and several others -- for example, two others are: * null <-- yes, it IS a type, and ALSO a value...! the null type only has one value, null...! (and not case sensitive, so can also be NULL, null, Null...) * resource - a special variable holding a reference to an external resource (like an opened file, database connection, and more...) * integers are what you probably expect; * float - can also be called double, real * boolean - true, false * but keywords in PHP are not case-sensitive, so TRUE and False and etc. are also OK * if you use a non-boolean value in a boolean context, PHP will try to treat it as a boolean! these are all considered to be false: * false * the integer 0 * the float values 0.0 and -0.0 * the empty string "" '' and the string "0" '0' * an array with zero elements * the unit type NULL (including unset variables) * and a few others.. But other values are considered to be true, including resources and NAN <- not-a-number * string - can be in single or double quotes (BUT there are some interesting differences between these if there is a variable in that string...) * array - both indexed and associative arrays * object - encapsulation of state and behavior * PHP does support classes ===== compound expressions ===== * usual collection of infix and prefix operations, and function calls, and a bit more, with some distinctively-PHP twists; * function call: funct_name(arg, arg) some built-in functions: * var_dump(desired_variable) will output the data type of a variable * is_blah (is_int, is_float, is_bool, others) return a bool letting you know if its argument is of that type * gettype expects one argument and returns a string whose contents are the name of the type of its argument ====== PHP variable ===== * STARTS with $, followed by a character (CANNOT be a digit), followed by 0 or more letters, digits, or underscores * and you can assign to a variable with the assignment operator, = $name = "Ginger"; $quant = 40.5; * once you create, its scope is the rest of that PHP document -- you can use it in any of the PHP tags from when it is created until the end of that .php file