A variable is like a box that contains information (i.e. data).
Each variable has a label that starts with
You can assign data to variables with
$location = 'Tokyo' $numTrainStations = 900 $hasGodzilla = true
Variable and function names are case-sensitive. They must match exactly.
$numTacos = 10 // ✕ ERROR print($numtacos) ^--- should be uppercase 'T' // ✕ ERROR Print('Hello!') ^--- should be lowercase 'p'
Basic Data Types
There are 3 basic types of data that can go into a variable:
- Number. Whole numbers, fractions, or negative numbers.
- String. Text, including spaces.
- Boolean. Either
Examples of each:
// Number 42 // positive -62 // negative 1.618 // fraction (aka 'floating point' or 'float') // String (surrounded with single-quotes) 'abc123' 'This is a string!' '123' <-- looks like a number, but still a string // Boolean true false
New variables must always be given a value before they are used.
If you’re not sure what to use, pick the “empty” version of the type you need:
$myString = '' $myNumber = 0 $myBoolean = false
PHP and other languages have a
undefined value that represents “nothing”.
For added safety, THT does not have a
null value. (See “The Billion Dollar Mistake”).
If you need a way to represent “nothing”, consider using a Result object, or an empty value like
Variables and function names are always written in camelCase format:
- All letters (and less often, numbers).
- No spaces or separators.
- The first letter must be a lowercase letter.
- The first letter of each extra word is Uppercase.
- Acronyms (e.g. 'HTTP') are treated as a single word.
$user $userId $firstName $isDeleted $numRecords $httpVersion $isAjaxRequest $userHasIphone
8 Tips for Good Names
Coming up with good variable names is one of the most important (and difficult) skills in programming.
Good names provide clarity. They make your code easier to understand — for yourself and for others.
Bad, unclear variable names will slow you down and can lead to hard-to-find bugs.
Tip 1: Avoid names that have no meaning, or that try to be cute or funny.
✕ All Bad --------------- $a1 $foo $temp $blah $frodo $imAwesome
Tip 2: Use full words. Don’t drop random letters. (It’s 2 hrd 2 rd and rmmbr the crct splng.)
$usr --> $user $blgCmnt --> $blogComment $grpTitle --> $groupTitle
Tip 3: It’s ok to truncate (remove the end of) very long words to 1 or 2 syllables, as long as the meaning is still clear.
$administrator --> $admin $moderator --> $mod $organizationId --> $orgId $configurationKey --> $configKey $temporaryDirectory --> $tempDir
Tip 4: Numeric counts are prefixed with num- and are plural.
$comments --> $numComments $noUsers --> $numUsers $nbrPosts --> $numPosts $cntClick --> $numClicks
Tip 5: Booleans (true/false) are prefixed with is-, has-, can-, etc.
$banned --> $isBanned $userBio --> $userHasBio $deletePosts --> $canDeletePosts
Tip 6: Joiner words like “of” and “the” should be dropped.
$numOfDaysInTheWeek --> $numDaysInWeek $theColorOfTheTheme --> $themeColor
Tip 7: Include units of measurement or time.
$elapsed --> $timeElapsedHours $distance --> $distToHomeKm
Tip 8: Don’t include the data type in the name.
$nameString --> $name $boolDeleted --> $isDeleted $activeUserList --> $activeUsers $userScoresMap --> $scorePerUser $blogPostObject --> $blogPost